国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁 > 數據庫 > MySQL > 正文

PHP訪問MySQL查詢超時處理的方法

2024-07-24 12:44:29
字體:
來源:轉載
供稿:網友
目前兩個客戶端擴展庫連接超時可以設置選項來操作,比如mysqli:
復制代碼 代碼如下:

<?php
//創建對象
$mysqli = mysqli_init();
//設置超時選項
$mysqli->options(MYSQLI_OPT_CONNECT_TIMEOUT, 5);
//連接
$mysqli->real_connect('localhost', 'my_user', 'my_password', 'world');
//如果超時或者其他連接失敗打印錯誤信息
if (mysqli_connect_errno()) {
printf("Connect failed: %s/n", mysqli_connect_error());
exit();
}
//成功輸出連接信息
printf ("Connection: %s/n.", $mysqli->host_info);
$mysqli->close();
?>

這個是連接超時,但是有些時候我們需要查詢讀寫超時,比如說我們一個數據庫壓力很大,或者連接很多,那么數據庫查詢就很緩慢,但是我希望某些不重要的數據,比如說文章點擊數這種如果查詢超時了就不顯示,至少能夠保證主體頁面正確顯示,但是查遍PHP手冊沒有發現這個操作選項或者函數。

 

手冊里只有這么四個選項

跟蹤 mysqli 的擴展源代碼發現它底層調用的是 libmysqlclient 的 mysql_options:

php-5.2.8/ext/mysqli/mysqli_api.c

并且在mysqli的PHP擴展中就只導出了幾個變量:

php-5.2.8/ext/mysqli/mysqli.c

大概看了一下 libmysqlclient 的代碼,發現其實它自帶是有讀寫超時設置的:

mysql-5.1.30/sql-common/client.c

因為它自己定義了很多操作選項,只是php擴展里沒有:

mysql-5.1.30/include/mysql.h

看看mysql中的讀寫超時是如何實現的:

mysql-5.1.30/sql-common/client.c

讀寫超時真正操作的地方,超時處理這里重試了兩次,還是寫死了:

mysql-5.1.30/sql/net_serv.cc

發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
主站蜘蛛池模板: 丹寨县| 宁海县| 平度市| 崇阳县| 陇西县| 云浮市| 大新县| 太仆寺旗| 溆浦县| 大荔县| 洛宁县| 体育| 瑞昌市| 天祝| 静海县| 武隆县| 东阳市| 平湖市| 库伦旗| 陆河县| 五寨县| 铜陵市| 扎赉特旗| 隆德县| 彭阳县| 马山县| 额尔古纳市| 全椒县| 江达县| 洱源县| 二连浩特市| 防城港市| 依安县| 海原县| 会理县| 大埔区| 仙桃市| 翼城县| 平和县| 杨浦区| 汝南县|