我应该在调用 "mysqli_stmt_prepare" 时手动检查错误吗?
Should I manually check for errors when calling "mysqli_stmt_prepare"?
我正在使用 PHP 和 mysqli 准备好的语句。在执行 mysqli_stmt_prepare()
时是否有令人信服的理由手动检查错误?更具体地说,我不只是询问准备语句行的最终结果。
$sql = "SELECT * FROM `users`;";
$stmt = mysqli_stmt_init($db);
mysqli_stmt_prepare($stmt, $sql); // How should I check for error in here
mysqli_stmt_execute($stmt);
$result = mysqli_stmt_get_result($stmt);
PHP manual 将此行且仅此行放在 if
语句中。
$sql = "SELECT * FROM `users`;";
$stmt = mysqli_stmt_init($db);
if (mysqli_stmt_prepare($stmt, 'SELECT * FROM `users`;')) {
mysqli_stmt_execute($stmt);
$result = mysqli_stmt_get_result($stmt);
}
我想知道在 mysqli 中使用准备好的语句时如何正确检查错误。是否有充分的理由手动检查手册中显示的该函数的 return 值?
Is there a good reason to manually check the return value of that
function as it is shown in the manual?
不,没有。
Mysqli 可以自动检查错误,你只需要让它这样做。
将mysqli配置为在每次出错时抛出异常,您将不再需要手动检查任何mysqli函数的错误!
因此,在 mysqli_connect()
之前添加以下行
mysqli_report(MYSQLI_REPORT_ERROR | MYSQLI_REPORT_STRICT);
仅此而已!
请注意,您必须以正确的方式处理可能出现的错误。您可以在我的文章中阅读,PHP error reporting
我正在使用 PHP 和 mysqli 准备好的语句。在执行 mysqli_stmt_prepare()
时是否有令人信服的理由手动检查错误?更具体地说,我不只是询问准备语句行的最终结果。
$sql = "SELECT * FROM `users`;";
$stmt = mysqli_stmt_init($db);
mysqli_stmt_prepare($stmt, $sql); // How should I check for error in here
mysqli_stmt_execute($stmt);
$result = mysqli_stmt_get_result($stmt);
PHP manual 将此行且仅此行放在 if
语句中。
$sql = "SELECT * FROM `users`;";
$stmt = mysqli_stmt_init($db);
if (mysqli_stmt_prepare($stmt, 'SELECT * FROM `users`;')) {
mysqli_stmt_execute($stmt);
$result = mysqli_stmt_get_result($stmt);
}
我想知道在 mysqli 中使用准备好的语句时如何正确检查错误。是否有充分的理由手动检查手册中显示的该函数的 return 值?
Is there a good reason to manually check the return value of that function as it is shown in the manual?
不,没有。
Mysqli 可以自动检查错误,你只需要让它这样做。
将mysqli配置为在每次出错时抛出异常,您将不再需要手动检查任何mysqli函数的错误!
因此,在 mysqli_connect()
mysqli_report(MYSQLI_REPORT_ERROR | MYSQLI_REPORT_STRICT);
仅此而已!
请注意,您必须以正确的方式处理可能出现的错误。您可以在我的文章中阅读,PHP error reporting