您好,匿名用户
随意问技术百科期待您的加入

在设置了MYSQL_OPT_RECONNECT之后,mysql_ping是否还有必要?

0 投票

根据官方文档

Checks whether the connection to the server is working. If the connection has gone down and auto-reconnect is enabled an attempt to reconnect is made. If the connection is down and auto-reconnect is disabled, mysql_ping() returns an error.

也就是说,如果 MYSQL_OPT_RECONNECT 没有被设置为 1(开启),那么mysql_ping()不会完成自动重连,只是简单返回一个error。

那么如果已经开启这个选项了呢?官方文档又说了

MYSQL_OPT_RECONNECT (argument type: my_bool *)
Enable or disable automatic reconnection to the server if the connection is found to have been lost.

也就是说,如果发现连接断开,那么会启动自动重连功能。

现在问题是:连接断开这事儿是啥时候被发现的呢?

根据官方文档mysql_ping()肯定是会发现,那mysql_query()是否会"发现"呢?

用户头像 提问 2013年 11月4日 @ Zilean 上等兵 (230 威望)
分享到:

1个回答

0 投票
 
最佳答案

写代码测试 + 追了一下MySQL的源码,结论是mysql_query()会"发现"。只要直接或间接调用了MySQL源码中 cli_advanced_command() 的函数,都会"发现"。

由于整个过程挺复杂的,详情就不列出来了,有兴趣的同学可以参考我的这篇博客

用户头像 回复 2013年 11月1日 @ Warwick 上等兵 (286 威望)
选中 2013年 9月7日 @Zilean
提一个问题:

相关问题

0 投票
1 回复 83 阅读
+1 投票
1 回复 55 阅读
0 投票
1 回复 42 阅读
用户头像 提问 2012年 12月1日 @ Nidalee 上等兵 (346 威望)
0 投票
1 回复 45 阅读
0 投票
0 回复 17 阅读

欢迎来到随意问技术百科, 这是一个面向专业开发者的IT问答网站,提供途径助开发者查找IT技术方案,解决程序bug和网站运维难题等。
温馨提示:本网站禁止用户发布与IT技术无关的、粗浅的、毫无意义的或者违法国家法规的等不合理内容,谢谢支持。

欢迎访问随意问技术百科,为了给您提供更好的服务,请及时反馈您的意见。
...