首页
导航
博客
电子书
算法
众创
代码
随贴
关于我们
您好,欢迎来到码863代码分享网! 请
[登录]
/
[注册]
搜 索
标题:
*
140
字
TAG标签:
(用空格隔开)
30
字
恢复历史版本:
请选择分类
html
python
javascript
php
sql
c
c++
c#
java
plain
所有人可见
仅自己可见
编辑器:UEditor
编辑器:TinyMCE
编辑器:Editor.md
HTML转MD
HTML转MD2
<p>长时间不用的连接php与mysql服务器都会中断,ping重连php中断的,close加new重连接mysql服务器中断的 ping不能重连mysql服务中断的服务</p><p><br/></p><p>当建立一个mysqli连接,在time_out(默认值在配置文件中设定)时间后没有对该连接做任何操作,这个连接会无效,此后再想使用这个连接进行查询,则回出现call xxxx on a non-object错误。这个时候如果不close这个已经失效的连接,直接进行new mysqli进行重新连接,则同样会连接失败,系统默认返回的还是那个已经失效的连接,必须close然后再重新连接。</p><p>解决这个问题方法有三个:</p><p><br/></p><p>一强行把连接等待时间设为很大:</p><p>$link= new mysqli($host,$user,$passwd,$database,$port);</p><p>$link->query("SET wait_timeout = 3600;");</p><p>$link->query("SET interactive_timeout = 3600;");</p><p><br/></p><p>二在每一次query查询前使用ping函数,关闭已经无效的连接,重新连接.</p><p>$link= new mysqli($host,$user,$passwd,$database,$port);</p><p>......(执行代码时间超过timeout时间)</p><p>if(!$link->ping())</p><p>{</p><p>echo "in ping reconnect\n";</p><p>@$this->db->close();</p><p>$link = new mysqli($host,$user,$passwd,$database,$port);</p><p>}</p><p>$link->query(xxx);</p><p><br/></p><p>三 使用类封装连接mysql过程,每一次查询前重新new这个封装好的类,就会又得到一个新的连接,即使</p><p>你的连接时指向同一个库,同一个表。</p><p><br/></p>
CopyRight 2002~2023 精通2100网 联系邮箱:qqtxt@163.com
版权所有:精通2100网
湘ICP备2023018646号-1
MYSQl共执行 4 个查询,用时 0.0021622180938721 秒,PHP脚本用时 0.004448 秒,占用内存 0.501 MB,Gzip 已启用