簡體   English   中英

調用“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 手冊將這一行和僅這一行放在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 中使用准備好的語句時如何正確檢查錯誤。 是否有充分的理由手動檢查手冊中顯示的 function 的返回值?

是否有充分的理由手動檢查手冊中顯示的 function 的返回值?

不,沒有。

Mysqli 可以自動檢查錯誤,您只需要求它這樣做。
將 mysqli 配置為在每次出錯時拋出異常,您將不必再手動檢查任何 mysqli function 錯誤!

因此,在mysqli_connect()之前添加以下行

mysqli_report(MYSQLI_REPORT_ERROR | MYSQLI_REPORT_STRICT);

就這樣!

請注意,您必須以正確的方式處理可能出現的錯誤。 您可以在我的文章PHP 錯誤報告中了解它

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

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