在 CodeIgniter 3 中设置数据库连接超时
Posted
技术标签:
【中文标题】在 CodeIgniter 3 中设置数据库连接超时【英文标题】:Set database connection timeout in CodeIgniter 3 【发布时间】:2015-12-13 12:05:59 【问题描述】:我们正在使用 2 个数据库,我们的本地数据库和一个外部数据库。但是现在我们的外部数据库已关闭(我们仍在开发中,所以我们遇到了这个问题很好),它现在尝试连接到外部数据库 30 秒,我怎样才能将数据库的连接超时更改为类似1 - 2 秒?我在我的数据库中使用 Codeigniter 和 PDO 驱动程序。有没有人为这个问题提供干净的解决方案?
【问题讨论】:
试试这个php.net/manual/en/… 我没有使用mysql @Scorpion 你试过设置PDO::ATTR_TIMEOUT
吗?你的数据库是什么?
这是解决问题的一种方法,但我不知道您是否使用了 codeigniter,它可以让您在多个驱动程序(mysql、mysqli 和 PDO)之间进行选择。我想知道是否可以在不编辑核心的情况下解决此问题(这将是 PDO 驱动程序,因为我正在使用 PDO 与 Mysql 数据库通信)@user3584460
【参考方案1】:
这不是文档中的功能,但您可以通过添加 options
设置从数据库配置文件 (application/config/database.php
) 中执行此操作,例如:
$db['default']['options'] = array(PDO::ATTR_TIMEOUT => 5);
其他使用相同内部机制的设置(例如PDO::MYSQL_ATTR_INIT_COMMAND
设置为$db['default']['stricton']
和PDO::MYSQL_ATTR_COMPRESS
设置为$db['default']['compress']
)不受此影响。
如果您想更深入地挖掘或检查设置了哪些选项,您可以在db_connect
函数中登录$this->options
system/database/drivers/pdo/pdo_driver.php
并检查database/drivers/pdo/subdrivers/pdo_mysql_driver.php
。
【讨论】:
正是我想要的,工作就像一个魅力!非常感谢!!我还不能给你赏金,但我会这样做的。以上是关于在 CodeIgniter 3 中设置数据库连接超时的主要内容,如果未能解决你的问题,请参考以下文章
在 mysql 中设置一个唯一列并在 codeigniter 中显示 flashdata