如何在codeigniter普通mysql和自定义pdo中运行并发数据库连接[重复]

Posted

技术标签:

【中文标题】如何在codeigniter普通mysql和自定义pdo中运行并发数据库连接[重复]【英文标题】:how to run concurrant db connections in codeigniter normal mysql and custom pdo [duplicate] 【发布时间】:2019-03-17 14:11:16 【问题描述】:

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

如何创建这个 pdo 类的全局实例,以便每个进程调用 codeigniter 时只实例化一次

【问题讨论】:

【参考方案1】:

您应该在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的信息

【讨论】:

好的,但是我可以在流程开始时调用一次,然后在需要的地方使用它吗? 当你想执行查询时,首先你需要数据库对象$pdodb= $this->load->database('pdodb', TRUE); 这行返回你的数据库对象并遵循执行查询过程(上面我提到了两行代码有助于执行查询)

以上是关于如何在codeigniter普通mysql和自定义pdo中运行并发数据库连接[重复]的主要内容,如果未能解决你的问题,请参考以下文章

在 codeigniter 中集成 gridster.js

Prometheus 监控云Mysql和自建Mysql(多实例)

MySQL数据库(30):内置函数和自定义函数 function

MySQL视图和自定义函数

mysql排序的中文首字母排序和自定义排序

DTO中的继承和自定义逻辑[关闭]