php 会自动重新连接到 MySQL 吗?

发布于 2024-08-06 07:28:38 字数 259 浏览 7 评论 0原文

$con = mysql_connect("localhost:".$LOCAL_DB_PORT, $LOCAL_DB_USER, $LOCAL_DB_PASS);
mysql_select_db("hr", $con);
mysql_query("set names utf8", $con);

while(true)
{
    do_stuff($con);
    sleep(50);
}

如果连接在 50 秒内超时,$con 仍然有效吗?

$con = mysql_connect("localhost:".$LOCAL_DB_PORT, $LOCAL_DB_USER, $LOCAL_DB_PASS);
mysql_select_db("hr", $con);
mysql_query("set names utf8", $con);

while(true)
{
    do_stuff($con);
    sleep(50);
}

If connection timesout in 50 seconds,will $con still work?

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(2

天生の放荡 2024-08-13 07:28:38

如果连接超时,则无法工作。

要回答评论中的问题,解决问题,请参阅 php.net 手册页 mysql_connect()< /a> 上面写着:

如果使用相同的参数第二次调用 mysql_connect(),则不会建立新链接,而是返回已打开链接的链接标识符。

因此,如果您想确保始终有一个打开的连接,只需在用 sleep() 替换的代码执行完毕后尝试打开一个具有相同参数的新连接。

If the connection times out, it won't work.

To answer the question from the comment, to cope with the problem, refer to php.net manual page for mysql_connect() which says:

If a second call is made to mysql_connect() with the same arguments, no new link will be established, but instead, the link identifier of the already opened link will be returned.

so if you want to make sure you always have an open connection, just try to open a new one with the same arguments after the code you substituted with sleep() is done executing.

一刻暧昧 2024-08-13 07:28:38

简单的答案:你为什么不尝试一下呢?

我相信codeburger是正确的:如果MySQL连接超时,那么它就消失了。您可以使用 mysql_pconnect 建立持久连接。您需要在每次睡眠后调用该函数,但它将使用现有连接,从而节省开销。

Simple answer: why don't you try it and see?

I believe codeburger is correct: if the MySQL connection times out, then it's gone. You could use a persistent connection with mysql_pconnect. You will need to call that function after sleep each time but it will use an existing connection, saving overhead.

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文