小花鱼 发表于 2015-1-21 10:04:56

怎样动态连接数据库

有多个服务器,在登录时候也需要连接不同的mysql数据库。

现在我的mysql连接信息存储在一个mysql表里。里面hostname,username,password,database都一一存储下来。登录时候我把这些信息都放在了session里。

但是在 application\config\database.php这个文件里怎么获取这个session呢?


求大神指点!!!

Closer 发表于 2015-1-21 10:33:15

本帖最后由 Closer 于 2015-1-21 11:10 编辑

小花鱼 发表于 2015-1-21 10:26
呃,不是要同时连多个数据库。而是选择性在连接数据库~~
如果我把数据库连接信息都存储在mysql里。那我增 ...

所以給了你第二個選擇
用 $_SESSION

不過你得先向 $_SESSION 扔參數值,再載入資料庫
這意味著你無法使用 autoload.php 來載入 database
因為無法即時更新你所選擇的資料庫

上列為錯誤教法,請勿使用

 

小花鱼 发表于 2015-1-21 11:03:03

本帖最后由 小花鱼 于 2015-1-21 11:04 编辑

nic 发表于 2015-1-21 10:48
其实没必要用database.php吧 走进牛角尖去了
哎~~那怎么用呢?刚才我试了一下这个:$dsn = 'dbdriver://username:password@hostname/database';
$this->load->database($dsn);


结果报错了!







小花鱼 发表于 2015-1-21 11:11:04

nic 发表于 2015-1-21 11:07
$dsn = 'mysql://localhost:root@root/test';
$this->load->database($dsn);
你确定你是这样子?


啊,错了!我写的是:$dsn = 'dbdriver://localhost:root@root/test';{:soso_e110:}

连上了!太感谢了!!!

Closer 发表于 2015-1-21 10:14:41

本帖最后由 Closer 于 2015-1-21 11:11 编辑

1. CI 手冊 - 連結 最下面的多數據庫連結方式不行嗎?
2. 你可以用 PHP 原生的 session


2. 為錯誤教法,請勿使用

 

小花鱼 发表于 2015-1-21 10:26:34

本帖最后由 小花鱼 于 2015-1-21 10:35 编辑

Closer 发表于 2015-1-21 10:14
1. CI 手冊 - 連結 最下面的多數據庫連結方式不行嗎?
2. 你可以用 PHP 原生的 session ...
呃,不是要同时连多个数据库。而是选择性在连接数据库~~

小花鱼 发表于 2015-1-21 10:34:55

Closer 发表于 2015-1-21 10:33
所以給了你第二個選擇
用 $_SESSION

关键是在database.php里怎么用这个啊?这是我要问的!

Closer 发表于 2015-1-21 10:36:36

本帖最后由 Closer 于 2015-1-21 11:11 编辑

小花鱼 发表于 2015-1-21 10:34
关键是在database.php里怎么用这个啊?这是我要问的!
直接用啊
session_start();
echo $_SESSION['test'];

我研究一下 +.+


上列為錯誤教法,請勿使用

 

nic 发表于 2015-1-21 10:37:59

$dsn = 'dbdriver://username:password@hostname/database';

$this->load->database($dsn);

手册写着呢

小花鱼 发表于 2015-1-21 10:42:43

Closer 发表于 2015-1-21 10:36
直接用啊

session_start();


啊~~我试试!

小花鱼 发表于 2015-1-21 10:44:06

nic 发表于 2015-1-21 10:37
$dsn = 'dbdriver://username:password@hostname/database';

$this->load->database($dsn);


呃。这个我没注意看~~等我仔细看看~~~

nic 发表于 2015-1-21 10:48:30

其实没必要用database.php吧 走进牛角尖去了
页: [1] 2 3
查看完整版本: 怎样动态连接数据库