最大执行时间 (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() {}
块来捕获异常。
不幸的是,致命错误是一种特殊情况。
More information here
错误处理不起作用,因为导致错误的不是查询。
执行命令和检索结果只需要很长时间。
您可以更改最大执行时间以允许命令有更多时间完成。
你可以使用这个:
ini_set('max_execution_time', numberInSeconds);
.
我现在不打算更改最大执行时间,(就像搜索框中的每个线程一样)我只想错误处理该行,但它对我不起作用。
这是我的代码:
$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() {}
块来捕获异常。
不幸的是,致命错误是一种特殊情况。 More information here
错误处理不起作用,因为导致错误的不是查询。 执行命令和检索结果只需要很长时间。 您可以更改最大执行时间以允许命令有更多时间完成。
你可以使用这个:
ini_set('max_execution_time', numberInSeconds);
.