簡體   English   中英

最大執行時間(php / mysqli)錯誤處理程序

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM