【问题标题】:MySQL connection, infinite PHP loops and temporary outagesMySQL 连接、无限 PHP 循环和临时中断
【发布时间】:2013-08-19 10:52:46
【问题描述】:

我有一个 PHP 脚本,按照设计,它是一个无限循环。循环内部是各种 mysql 查询。

在进入循环之前,它会像这样连接到数据库:

include(database.php)

while (1)
{
  try {
    $q = $db->prepare('SELECT * from stuff');
    ......
   }
   catch (PDOException $err)
   {
     return $err
   }
}

每当我出于某种原因必须重新启动 mysql 服务器时,php 循环都会抛出有关无法按预期连接到数据库的错误。但是,当 MySQL 服务器再次联机时,PHP 脚本会继续抛出有关连接的错误,直到终止脚本循环并再次启动脚本。

原因是否与数据库连接代码在循环之外有关?

【问题讨论】:

  • 是的,那肯定是个问题。
  • 在您的catch 块中,您确实应该检查您认为可以从中恢复的特定错误。如果它不是其中之一,那么您应该退出。在这种情况下,您可能可以编写某种sleep 并再次尝试循环。
  • 只需在 catch 块中创建一个新连接即可。
  • 所以我最好检查捕获的错误是否是连接错误,如果是,请重新包含数据库配置?一个连接错误可能会终止所有未来的连接尝试,这似乎有点奇怪,但是嘿嘿。

标签: php mysql loops connection


【解决方案1】:

WHILE 1 是一个无限循环,因此即使在 Mysql 关闭后它也会尝试选择,当你重新启动它时它不会自动重新连接。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2016-04-05
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多