【问题标题】:check if mysql connection is valid检查mysql连接是否有效
【发布时间】:2010-07-16 06:36:06
【问题描述】:

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

脚本的原始结构是这样的

$mysqli = mysqli_connect(...);

while(1) {
  if(event1) {
      // do database action
  } else if(event2) {
      // non database action
      echo "something";
  }
}

当我运行脚本时,最初一切正常。当我几个小时后回来时,如果我发出 event2 但在发出 event1 时失败并出现与数据库相关的错误(PHP 致命错误:在第 n 行中的非对象上调用成员函数 bind_param())

我怎样才能保持 mysql 连接有效,或者有没有办法检查 mysqli 连接是否有效,以便我可以重新连接?

【问题讨论】:

    标签: php mysqli database-connection daemon


    【解决方案1】:

    【讨论】:

    • 谢谢,mysqli_ping 工作。我想补充一点,我必须在我的 php.ini 中添加 mysqli.reconnect = On 才能在关闭时自动重新建立连接。 (注意:在这种情况下 ini_set 将不起作用!!)
    • @Gunjan 非常感谢您的评论 - 它帮助我解决了我的问题。我添加的 php.ini 指令是 mysqli.reconnect = "1",无需在代码中添加 $mysqli-ping()
    猜你喜欢
    • 1970-01-01
    • 2013-10-29
    • 2010-09-30
    • 1970-01-01
    • 2015-08-27
    • 1970-01-01
    • 2020-11-19
    • 2019-04-04
    相关资源
    最近更新 更多