Php Mysqli持久连接错误

时间:2010-10-05 17:49:52

标签: php mysql mysqli

我的脚本有时出现问题,通常是在我离开它一段时间(比如5-10分钟)而没有请求时我会收到此错误:

警告:mysqli_connect()[function.mysqli-connect]:MySQL服务器在第30行的FILE.php中已经消失

这是给我错误的代码:

  

$这 - > DB = mysqli_connect( 'P:'。$这 - > DB_HOST,$这 - > DB_USER,$这 - > db_pwd,$这 - > DB_NAME);

代码包含在单例类中,我目前正在使用

在windows7上进行开发
  • Apache 2.2.11
  • MySQL 5.1.36
  • PHP 5.3.0

(我使用WampServer 2.0i)但显然我会在最终服务器上使用linux。

感谢。

3 个答案:

答案 0 :(得分:1)

很简单...... PHP 5.1不支持

http://php.net/manual/en/mysqli.persistconns.php

需要PHP 5.3

答案 1 :(得分:0)

连接后是否检查错误?这可能表明需要重新连接。虽然查看文档但是没有办法强制mysqli创建新连接。

你可以在每次调用数据库之前使用mysqli_ping()来检查服务器,但是如果你有一堆,那就太麻烦了。

如果您管理MySQL服务器或者与管理MySQL服务器保持良好关系,那么另一件事就是增加服务器本身的空闲超时。

个人恕我直言,持久连接在PHP中存在问题,除非你有一个非常高流量的站点,速度的提高还不足以让它值得一试。

答案 2 :(得分:-1)

检查mysql服务器中的超时值,尤其是connect_timeout和wait_timeout。

当连接因超时而关闭时,您需要重新连接 - >这应该由您的申请完成。