我应该在调用 "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