如何在Codeigniter普通mysql和自定义pdo中运行并发数据库连接

时间:2018-10-12 10:49:56

标签: php codeigniter pdo

下午全部。 我有一个奇怪的问题。 我需要在codeigniter实例中有两个连接到我们的数据库。 我需要具有标准的ci方法,但我还需要创建一个pdo类实例以用于新功能设置。 不幸的是,我们必须使用旧的数据库连接来运行v1.0系统,并使用pdo db对象来运行新的v2.0系统。

我该如何创建此pdo类的全局实例,以使其每次对codeigniter的进程调用仅实例化一次。

1 个答案:

答案 0 :(得分:0)

您应该在application/config/database.php中添加另一个数据库,并像这样更改dbdriverhostname

$db['pdodb']['hostname'] = "mysql:host=localhost'";
$db['pdodb']['username'] = "root";
$db['pdodb']['password'] = "";
$db['pdodb']['database'] = "your_db";
$db['pdodb']['dbdriver'] = "pdo";
$db['pdodb']['dbprefix'] = "";
$db['pdodb']['pconnect'] = TRUE;
$db['pdodb']['db_debug'] = FALSE;
$db['pdodb']['cache_on'] = FALSE;
$db['pdodb']['cachedir'] = "";
$db['pdodb']['char_set'] = "utf8";
$db['pdodb']['dbcollat'] = "utf8_general_ci";
$db['pdodb']['swap_pre'] = "";
$db['pdodb']['autoinit'] = TRUE;
$db['pdodb']['stricton'] = FALSE;

您可以像这样加载数据库

$pdodb= $this->load->database('pdodb', TRUE);

最后,您可以像这样执行查询

$query = $pdodb->select('col1, col2,col3')->get('your_table');

有关multiple database

的更多信息