在 CodeIgniter 3 中设置数据库连接超时

Set database connection timeout in CodeIgniter 3

我们正在使用 2 个数据库,我们的本地数据库和一个外部数据库。但是现在我们的外部数据库已关闭(我们仍在开发中,所以我们遇到了这个问题很好)并且它现在尝试连接到外部数据库 30 秒,我怎样才能将数据库的连接超时更改为类似1 - 2 秒?我在我的数据库上使用 Codeigniter 和 PDO 驱动程序。有没有人对此问题有一个干净的解决方案?

这不是记录在案的功能,但您可以通过添加 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'])不受此影响。

如果您想深入了解或检查设置了哪些选项,可以在 system/database/drivers/pdo/pdo_driver.php 中的 db_connect 函数中登录 $this->options 并检查 database/drivers/pdo/subdrivers/pdo_mysql_driver.php