0

我需要连接到我正在执行的另一个 mysql 数据库

    $dsn = "{$dbdriver}://$vars[username]:$vars[password]@$vars[hostname]/$vars[database]";

    $db2 = $this->EE->load->database($dsn, true);
    $res = $db2->from('categories')->get()->result_array();

但我收到错误消息Fatal error: Call to a member function result_array() on a non-object

那是第三方脚本,所以数据库连接已经很早了。然后该脚本应该连接到另一个数据库,但已经创建了第一个数据库连接

$dsn包含正确的数据。为什么我会收到此错误?谢谢

4

3 回答 3

0

也写入第二个数据库的参数confid/database.php

$db['second_db']['hostname'] = 'localhost'; 
$db['second_db']['username'] = 'foo'; 
...

$db2 = $this->EE->load->database('second_db', true);
于 2012-04-04T15:30:39.617 回答
0

我已经想通了。查询应包含附加参数db_debug=1,因此 dsn 字符串应如下所示

$dsn = "mysql://$vars[username]:$vars[password]@$vars[hostname]/$vars[database]?db_debug=1";
于 2012-04-11T14:31:29.030 回答
0

如果您阅读 codeigniter 用户指南,您会很容易找到答案。标题是

连接到多个数据库

https://www.codeigniter.com/user_guide/database/connecting.html

于 2012-04-10T05:49:19.407 回答