首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >mysql连接在一段时间后关闭?(PHP)

问mysql连接在一段时间后关闭?(PHP)
EN

Stack Overflow用户
提问于 2009-10-20 16:34:52
回答 2查看 2.2K关注 0票数 0

我有一个需要几分钟才能执行的脚本。首先(mysql_connect)建立mysql连接,然后是一个带有一些查询的循环(mysql_query)。这个循环会持续很长时间,几分钟后脚本会抛出一条警告,告知mysql服务器已经离开(提供的参数不是有效的MySQL结果资源)。

连接是否会在执行一段时间后自动关闭,即使进行了查询并获取了结果?

EN

回答 2

Stack Overflow用户

发布于 2009-10-21 00:47:56

“提供的参数不是有效的MySQL结果资源”意味着mysql_...()函数希望您传递结果资源,但您确实传递了其他内容,例如

代码语言:javascript
复制
$result = false;
$row = mysql_fetch_array($result, MYSQL_ASSOC);
// => Supplied argument is not a valid MySQL result resource

那么,为什么$result会是false呢?大多数情况下,这是因为前面的查询失败了,脚本中没有错误处理。每一次查询都可能失败,你无法做任何事情来防止这种情况发生。因此,您总是需要某种类型的错误处理,这样脚本就不会在没有错误条件(只有一个错误条件)时尝试处理结果。最简单的错误处理是让脚本在发生错误时停止。

代码语言:javascript
复制
$sql = 'SELECT x,y,z FROM ...';
$result = mysql_query($sql, $mysql) or die(mysql_error());

如果出现错误,mysql_query()将返回false。在这种情况下,or之后的语句被执行,也就是说,如果查询失败,php将打印MySQL的最后一个错误消息,然后退出。

不过,您可能希望实现一个更高级的错误处理例程...

例如,当PDO对象被设置为PDO::ERRMODE_EXCEPTION时,只要发生错误就会抛出异常。与(简单的)返回值相比,更难忽略它。

编辑:这是对原始答案的完全重写。第一个建议是看看wait_timeout的价值。

票数 2
EN

Stack Overflow用户

发布于 2009-10-20 16:50:43

您可能遇到了php设置的超时时间

Max Execution Time

Set Time Limit

票数 -1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/1595882

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档