PHP中使用sleep造成mysql读取失败的案例和解决方法


Posted in PHP onAugust 21, 2014

近日,由于项目需求
需要用到sleep函数定时从数据库取一堆数据出来去执行某些操作。
sleep等待的时间至少有一个小时以上
此前做过测试
用sleep函数去完成数小时后执行的操作是可行的
 
可邪门的问题出来了
程序用sleep后发现不能从数据库取到相应的信息
把sleep去掉
结果正常
 
郁闷中。。。
难道sleep影响读库操作!!!
于是为了方便测试
直接来个sleep(10) 十秒后执行
结果能从数据库读取信息
 
可为什么sleep()一个小时后不能读取信息呢?
为了测试方便我直接在sleep语句前读库一次,sleep后再读一次库
如:

<?php

require_once('include.php');

// 读取数据库信息

$data = $db->getList();

print_r($data);

 

// 定时一个小时以后

sleep(3600);

 

// 再读取一次信息

$data = $db->getList();

print_r($data);

 

?>

结果发现
第一次读库成功
第二次读库为空
 
于是再把sleep改成十秒钟后再测试一次
<?php

require_once('include.php');

// 读取数据库信息

$data = $db->getList();

print_r($data);

 

// 定时十秒以后

sleep(10);

 

// 再读取一次信息

$data = $db->getList();

print_r($data);

 

?>

以上结果
两次读库成功
 
为何一个小时读库失败,十秒钟却读库成功呢??
我用的是单例数据库操作类
想起一个问题
会不会是数据库连接超时导致读库失败呢?
于是赶紧把此处读库操作改成现连
<?php

require_once('include.php');

// 读取数据库信息

$data = getList();

print_r($data);

 

// 定时一个小时以后

sleep(3600);

 

// 再读取一次信息

$data = getList();

print_r($data);

 

// 读取数据库信息

function getList(){

        $pdo = new PDO('mysql:host=localhost;dbname=test','root','root');

        $result = $pdo->query('select * from tables');

        return $result->fetchAll(PDO::FETCH_ASSOC);

}

?>

测试成功!!
原来sleep会导致单例类超时问题从而出现执行时间过长以后数据库连接可能断开问题,也就不能读到数据库信息!
PHP 相关文章推荐
php heredoc和phpwind的模板技术使用方法小结
Mar 28 PHP
php 小乘法表实现代码
Jul 16 PHP
php实现mysql同步的实现方法
Oct 21 PHP
Blitz templates 最快的PHP模板引擎
Apr 06 PHP
ThinkPHP 防止表单重复提交的方法
Aug 08 PHP
超小PHP小马小结(方便查找后门的朋友)
May 05 PHP
PHPThumb图片处理实例
May 03 PHP
windows的文件系统机制引发的PHP路径爆破问题分析
Jul 28 PHP
php中json_encode不兼容JSON_UNESCAPED_UNICODE的解决方案
May 31 PHP
php类自动装载、链式操作、魔术方法实现代码
Jul 23 PHP
php设计模式之适配器模式原理、用法及注意事项详解
Sep 24 PHP
Vagrant(WSL)+PHPStorm+Xdebu 断点调试环境搭建
Dec 13 PHP
从零开始学YII2框架(六)高级应用程序模板
Aug 20 #PHP
ThinkPHP登录功能的实现方法
Aug 20 #PHP
从零开始学YII2框架(五)快速生成代码工具 Gii 的使用
Aug 20 #PHP
PHP面向对象程序设计之类常量用法实例
Aug 20 #PHP
从零开始学YII2框架(四)扩展插件yii2-kartikgii
Aug 20 #PHP
PHP面向对象程序设计之接口用法
Aug 20 #PHP
从零开始学YII2框架(三)扩展插件yii2-gird
Aug 20 #PHP
You might like
我的论坛源代码(七)
2006/10/09 PHP
php读取大文件示例分享(文件操作类)
2014/04/13 PHP
ThinkPHP结合ajax、Mysql实现的客户端通信功能代码示例
2014/06/23 PHP
PHP使用preg_split和explode分割textarea存放内容的方法分析
2017/07/03 PHP
php设计模式之备忘模式分析【星际争霸游戏案例】
2020/03/24 PHP
PHP执行linux命令6个函数代码实例
2020/11/24 PHP
JavaScript replace(rgExp,fn)正则替换的用法
2010/03/04 Javascript
z-blog SyntaxHighlighter 长代码无法换行解决办法(jquery)
2014/11/16 Javascript
JavaScript通过this变量快速找出用户选中radio按钮的方法
2015/03/23 Javascript
JavaScript通过Date-Mask将日期转换成字符串的方法
2015/06/04 Javascript
用canvas 实现个图片三角化(LOW POLY)效果
2016/02/18 Javascript
jQuery实现产品对比功能附源码下载
2016/08/09 Javascript
js模式化窗口问题![window.dialogArguments]
2016/10/30 Javascript
利用jQuery实现一个简单的表格上下翻页效果
2017/03/14 Javascript
利用node.js本地搭建HTTP服务器
2017/04/19 Javascript
React中上传图片到七牛的示例代码
2017/10/10 Javascript
JS实现HTML页面中动态显示当前时间完整示例
2018/07/30 Javascript
老生常谈JavaScript获取CSS样式的方法(兼容各浏览器)
2018/09/19 Javascript
JS数组Object.keys()方法的使用示例
2019/06/05 Javascript
vue+element 实现商城主题开发的示例代码
2020/03/26 Javascript
vue-router 控制路由权限的实现
2020/09/24 Javascript
使用typescript快速开发一个cli的实现示例
2020/12/09 Javascript
TensorFlow深度学习之卷积神经网络CNN
2018/03/09 Python
PyCharm配置mongo插件的方法
2018/11/30 Python
python进行TCP端口扫描的实现
2018/12/21 Python
python远程调用rpc模块xmlrpclib的方法
2019/01/11 Python
详解Python Matplot中文显示完美解决方案
2019/03/07 Python
python flask中动态URL规则详解
2019/11/22 Python
机电专业体育教师求职信
2013/09/21 职场文书
学生干部的自我评价分享
2014/01/18 职场文书
高二物理教学反思
2014/02/08 职场文书
中学教师教育感言
2014/02/21 职场文书
《金子》教学反思
2014/04/13 职场文书
推普标语口号大全
2015/12/26 职场文书
员工工作心得体会
2019/05/07 职场文书
浏览器常用基本操作之python3+selenium4自动化测试(基础篇3)
2021/05/21 Python