需要用到sleep函數定時從數據庫取一堆數據出來去執行某些操作。
sleep等待的時間至少有一個小時以上
此前做過測試
用sleep函數去完成數小時后執行的操作是可行的

可邪門的問題出來了
程序用sleep " /> av免费在线观看网址,日本特级片,黄色网址在线免费观看

中文字幕日韩一区二区_国产一区二区av_国产毛片av_久久久久国产一区_色婷婷电影_国产一区二区精品

PHP中使用sleep造成mysql讀取失敗的案例和解決方法

近日,由于項目需求
需要用到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中使用sleep造成mysql讀取失敗的案例和解決方法,轉載需保留來源!

鄭重聲明:本文版權歸原作者所有,轉載文章僅為傳播更多信息之目的,如作者信息標記有誤,請第一時間聯系我們修改或刪除,多謝。

主站蜘蛛池模板: 国产中文字幕网 | 亚洲视频一区 | 免费看日韩视频 | 国产成人综合亚洲欧美94在线 | 欧美精品久久久久久 | 日韩欧美天堂 | 国产精品视频网 | 一区二区三区四区在线视频 | 最新中文字幕一区 | 一区二区三区在线免费看 | 综合二区| 久久综合一区二区三区 | 欧美日韩在线一区二区三区 | 中文字幕一区二区三区在线观看 | 美日韩精品 | 一区二区三区四区在线 | 国产精品日日夜夜 | 精品一区二区三区在线视频 | 性在线| 天天躁日日躁aaaa视频 | 久久久久国产精品 | 国产美女永久免费无遮挡 | 欧美一区二区激情三区 | 精品日本中文字幕 | 超碰人人爱 | 亚洲一区二区在线播放 | 激情欧美一区二区三区 | 久久伊人精品 | 久久久久久国产精品 | 精品视频在线免费观看 | 一区精品视频在线观看 | 国产99久久 | 欧美亚洲视频 | 国产91在线 | 亚洲 | 日本免费一区二区三区视频 | 欧美精品综合在线 | 国产aa| 91福利影院 | 国产成人精品一区二三区在线观看 | 红桃成人在线 | 久久国产一区二区 |