[英]Maximum execution time (php/mysqli) error handler
我現在不希望更改最大執行時間(就像搜索框中的每個線程一樣),我只是想對行進行錯誤處理,但對我來說不起作用。
這是我的代碼:
$multiSupplierResult = mysqli_query($con, $multiSupplierQuery) or trigger_error("Query Failed! SQL: $multiSupplierResult");
我在運行太多行的查詢時遇到此錯誤:
Fatal error: Maximum execution time of 30 seconds exceeded in blah blah on line blah blah....
為什么我的錯誤處理程序不起作用?
我在另一個線程中找到了此代碼,效果很好:
register_shutdown_function('shutdownFunction');
function shutDownFunction() {
$error = error_get_last();
if ($error['type'] == 1) {
echo "<pre>";
print "blah blah blah";
echo "</pre>";
}
}
但是,如果用戶搜索的零件過多,並且查詢花費了30秒鍾以上,他們會看到該“ blah blah blah
消息,但他們仍然還會看到“ Fatal Error
消息。 如何完全隱藏該消息?
Fatal error
是一個例外。
您的代碼行使用二進制比較,因此被跳過。
對於任何正常的異常,您需要一個try {} catch() {}
塊來捕獲異常。
不幸的是,致命錯誤是一種特殊情況。 更多信息在這里
錯誤處理不起作用,因為不是查詢導致了錯誤。 執行命令和檢索結果只花了很長時間。 您可以更改最大執行時間,以便有更多時間完成命令。
您可以使用: ini_set('max_execution_time', numberInSeconds);
。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.