我有一個每分鐘運行的cron作業。每隔一段時間,而cron的失敗,錯誤:如何在「MySQL服務器已經消失」錯誤後退出?
MySQL server has gone away
的問題是,這個錯誤下面所有的查詢被執行,有時可能會產生不良的結果。
那麼如何檢測到錯誤發生並退出其餘代碼的執行?
或者任何有關如何解決錯誤的提示將是偉大的。
我有一個每分鐘運行的cron作業。每隔一段時間,而cron的失敗,錯誤:如何在「MySQL服務器已經消失」錯誤後退出?
MySQL server has gone away
的問題是,這個錯誤下面所有的查詢被執行,有時可能會產生不良的結果。
那麼如何檢測到錯誤發生並退出其餘代碼的執行?
或者任何有關如何解決錯誤的提示將是偉大的。
錯誤似乎是由於連接到未響應的服務器,或者您正在使用的超時連接而導致的。
您應該能夠從客戶端API獲取某種錯誤代碼,並查看連接是否仍然有效。
如果失敗,可以拋出異常,然後停止程序。
$query_id = mysqli_query($conn_id, $query);
if(!$query_id)
{
// throw an exception
throw new DatabaseQueryException("An error occurred accessing the database.\nError: \n".mysqli_error($conn_id));
}
是什麼,我在我的網站
你可以給一個小的代碼片段? – Yeti 2010-05-07 18:45:13
@Lost_in_code你去了,我添加了一個非常簡單的。你顯然需要用自定義的替換'DatabaseQueryException'(或者''DatabaseQueryException extends Exception {}') – 2010-05-07 18:47:47
*(相關)* http://blog.taragana.com/index.php/archive/mysql-tip-mysql-server-has-gone-使用遠程或丟失連接到服務器的查詢修復/ – Gordon 2010-05-08 09:30:09