检查mysql连接是否有效

Gun*_*jan 3 php mysqli daemon database-connection

我有一个长期运行的PHP脚本,它基本上是一个无限循环侦听事件(它是一个xmpp机器人),我启动脚本nohup php bot.php &.

脚本的原始结构就像

$mysqli = mysqli_connect(...);

while(1) {
  if(event1) {
      // do database action
  } else if(event2) {
      // non database action
      echo "something";
  }
}
Run Code Online (Sandbox Code Playgroud)

当我运行脚本时,一切正常.当我几个小时后回来时,如果我发出event2但是在发出带有数据库相关错误的事件1时失败了,那么机器人工作正常(PHP致命错误:在线路n上的非对象上调用成员函数bind_param())

如何保持mysql连接有效或有没有办法检查mysqli连接是否有效,以便我可以重新连接?

dam*_*mir 5

你可以ping连接http://php.net/manual/en/function.mysql-ping.php

  • 谢谢,mysqli_ping工作.我想补充一下,我必须在我的php.ini中添加mysqli.reconnect = On以便连接在关闭时自动重新建立.(注意:ini_set在这种情况下不起作用!!) (3认同)