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

Php 在CodeIgniter 3中设置数据库连接超时,php,database,codeigniter,pdo,connection-timeout,Php,Database,Codeigniter,Pdo,Connection Timeout,我们正在使用2个数据库,本地数据库和外部数据库。但是现在我们的外部数据库关闭了(我们还在开发中,所以很高兴我们遇到了这个问题),它现在尝试连接到外部数据库30秒,我如何将数据库的连接超时更改为1-2秒?我在数据库中使用带有PDO驱动程序的Codeigniter。有没有人能为这个问题提供一个干净的解决方案?这不是一个文档化的功能,但是您可以通过添加选项设置,从数据库配置文件(application/config/database.php)中执行此操作,例如: $db['default']['opt

我们正在使用2个数据库,本地数据库和外部数据库。但是现在我们的外部数据库关闭了(我们还在开发中,所以很高兴我们遇到了这个问题),它现在尝试连接到外部数据库30秒,我如何将数据库的连接超时更改为1-2秒?我在数据库中使用带有PDO驱动程序的Codeigniter。有没有人能为这个问题提供一个干净的解决方案?

这不是一个文档化的功能,但是您可以通过添加
选项
设置,从数据库配置文件(
application/config/database.php
)中执行此操作,例如:

$db['default']['options'] = array(PDO::ATTR_TIMEOUT => 5);
使用相同内部机制的其他设置(例如使用
$db['default']['stricon']
设置的
PDO::MYSQL_ATTR_INIT_命令
和使用
$db['default']['COMPRESS']
设置的
PDO::MYSQL_ATTR_COMPRESS
不受此影响


如果您想深入挖掘或检查设置了哪些选项,您可以在
system/database/drivers/pdo/pdo\u driver.php中的
db\u connect
函数中记录
$this->options
,还可以检查
数据库/drivers/pdo/subdrivers/pdo\u mysql\u driver.php

试试这个我没有使用mysql@scorpion,您试过设置
pdo::ATTR\u TIMEOUT
?你的数据库是什么?这是解决问题的一种方法,但我不知道你是否在使用codeigniter,它允许你在多个驱动程序(mysql、mysqli和PDO)之间进行选择。我想知道是否有可能在不编辑core的情况下修复此问题(这将是PDO驱动程序,因为我正在使用PDO与Mysql数据库进行对话)@user3584460正是我想要的,工作起来很有魅力!非常感谢!!我现在还不能给你赏金,但我会尽快给你。