在 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
。
我们正在使用 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
。