用户
 找回密码
 入住 CI 中国社区
搜索
查看: 5747|回复: 20
收起左侧

[已解决] 怎样动态连接数据库

[复制链接]
发表于 2015-1-21 10:04:56 | 显示全部楼层 |阅读模式
有多个服务器,在登录时候也需要连接不同的mysql数据库。

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

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


求大神指点!!!
发表于 2015-1-21 10:33:15 | 显示全部楼层
本帖最后由 Closer 于 2015-1-21 11:10 编辑
小花鱼 发表于 2015-1-21 10:26
呃,不是要同时连多个数据库。而是选择性在连接数据库~~
如果我把数据库连接信息都存储在mysql里。那我增 ...


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

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

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

 

评分

参与人数 1威望 +5 收起 理由
小花鱼 + 5 赞一个!

查看全部评分

 楼主| 发表于 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);


结果报错了!
QQ截图20150121110400.png






 楼主| 发表于 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:}

连上了!太感谢了!!!
发表于 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里怎么用这个啊?这是我要问的!
发表于 2015-1-21 10:36:36 | 显示全部楼层
本帖最后由 Closer 于 2015-1-21 11:11 编辑
小花鱼 发表于 2015-1-21 10:34
关键是在database.php里怎么用这个啊?这是我要问的!

直接用啊
session_start();
echo $_SESSION['test'];

我研究一下 +.+



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

 
发表于 2015-1-21 10:37:59 | 显示全部楼层
$dsn = 'dbdriver://username:password@hostname/database';

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

手册写着呢

评分

参与人数 1威望 +5 收起 理由
小花鱼 + 5 很给力!

查看全部评分

 楼主| 发表于 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);

呃。这个我没注意看~~等我仔细看看~~~
发表于 2015-1-21 10:48:30 | 显示全部楼层
其实没必要用database.php吧 走进牛角尖去了

评分

参与人数 1威望 +5 收起 理由
小花鱼 + 5 赞一个!

查看全部评分

本版积分规则