我在 try 塊中有一個 mysqli_query,如下所示:
try {
mysqli_query($db,$sql);
}
catch (Exception $e) {
throw $e;
}
我正在嘗試捕獲“PHP 致命錯誤:未捕獲的 mysqli_sql_exception:資料對于列而言太長...”錯誤,因此我可以在頁面上顯示 PHP 訊息。目前,由于這是一個致命錯誤,它只會使腳本崩潰,我無法顯示任何內容。
我試過放入mysqli_query($db,$sql);一個 try catch 塊,但問題仍然存在。我在其他地方讀過該設定mysqli_report(MYSQLI_REPORT_ALL);可能會有所幫助,我嘗試將其放在查詢之前,但它并沒有改變任何東西。
有任何想法嗎?
uj5u.com熱心網友回復:
在 SQL 查詢執行中使用 try catch 是合理的,這種情況很少見。
為了處理一個特定的 SQL 錯誤,您可以在catch塊內添加一個條件來查找特定錯誤,使用getCode()or getMessage(),然后,如果找到,按照您喜歡的方式處理它。在throw $e;其他情況下使用,因此所有其他錯誤將在其他地方以通常的方式處理:
try {
mysqli_query($db,$sql);
}
catch (mysqli_sql_exception $e) {
if (str_starts_with($e->getMessage(),"Data too long for column") {
// handle the error
} else {
throw $e;
}
}
轉載請註明出處,本文鏈接:https://www.uj5u.com/qianduan/521030.html
上一篇:更新元資料插入/更新(如果存在)的最佳方法[MySQL]
下一篇:包含布林值的訂購表
