mysqli_query 報 mysql 連接斷開的處理方法
在使用 php 腳本連接 mysql 服務器時,可能會遇到 mysqli_query(): send of xx bytes failed with errno=32 broken pipe 的錯誤。其中,xx 代表發(fā)送的字節(jié)數(shù)。盡管嘗試增大 max_allowed_packet 參數(shù),但問題仍然存在。
錯誤原因
此錯誤通常表明 php 腳本與 mysql 服務器之間的連接在一段時間不活動后被服務器關閉。當腳本嘗試通過這個已關閉的連接執(zhí)行查詢時,就會觸發(fā)錯誤。
解決方法
立即學習“PHP免費學習筆記(深入)”;
為了解決此問題,可以采取以下步驟:
set wait_timeout = 3600;
登錄后復制
- 檢查連接是否斷開:在執(zhí)行查詢之前,檢查連接是否仍然活動,并重新連接已關閉的連接:
if (!mysqli_ping($conn)) { // 斷開連接 mysqli_close($conn); // 重新連接 $conn = mysqli_connect($host, $user, $password, $database); }
登錄后復制
通過進行這些調整,可以防止 broken pipe 錯誤的發(fā)生,確保 php 腳本與 mysql 服務器之間的穩(wěn)定連接。