CodeIgniter数据库检查超时错误

时间:2015-04-10 13:26:55

标签: php mysql codeigniter

我正在运行一个从用户指定的数据库中获取数据的小型Web服务,其中一些查询很重,通常需要比平常更长的时间,因为这些行包含base64图像和其他所需的东西。当我的查询花费超过30秒时,CI会以某种方式崩溃。我尝试过使用$this->db->_error_number()$this->db->_error_message()

if ($this->db->trans_status() === FALSE) {
    die('Wops, something weird happened...');
}

但是他们都没有给我错误信息。有人知道如何捕获这些超时错误并将其回显给用户吗?感谢。

编辑:

日志输出:

...
DEBUG - 2015-04-10 10:34:34 --> Controller "Main" Initialized
DEBUG - 2015-04-10 10:34:34 --> Helper loaded: log_helper
DEBUG - 2015-04-10 10:34:34 --> Database Driver Class Initialized
DEBUG - 2015-04-10 10:35:04 --> Final output sent to browser
DEBUG - 2015-04-10 10:35:04 --> Total execution time: 30.0145
...

2 个答案:

答案 0 :(得分:3)

请检查phpinfo()中的 mysql.connect_timeout 参数,并在需要时增加,因为这可能是查询超时的原因。

您可以阅读有关此Here

的更多信息

答案 1 :(得分:1)

您的查询需要花费太多时间。 如果你正在使用webserver(nginx或apache),他们有默认超时。 在大多数情况下,它是30秒。您可以增加网络服务器的超时时间。

同时检查php.ini max_execution_time中的php超时参数 或者在php代码中直接尝试set_time_limit更大。 http://php.net/manual/en/function.set-time-limit.php