【发布时间】: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