在 PHP 中使用 MySQL 查詢時,通常會採用 mysqli 或 die 結構來處理潛在錯誤。但是,總是需要終止腳本執行還是有其他選擇?
與它的名字相反,die() 函數並不是理想的在這種情況下處理錯誤的方法。原因如下:
而不是使用 die(),它是建議使用 mysqli_report(MYSQLI_REPORT_ERROR | MYSQLI_REPORT_STRICT) 將 MySQLi 配置為在錯誤時拋出異常。這允許您編寫 MySQLi 命令而無需額外的錯誤處理程式碼,例如:
$result = mysqli_query($link, $sql);
如果發生錯誤,將拋出異常。您可以優雅地捕捉並處理此異常,提供自訂的錯誤回應或適當地重新導向使用者。例如:
try { $result = mysqli_query($link, $sql); } catch (mysqli_sql_exception $e) { // Handle the error here log_error($e->getMessage()); redirect_to_error_page(); }
如果需要,您也可以將錯誤記錄到單獨的表中以進行審核或進一步分析。為此,您可以建立一個自訂函數來處理此任務:
function log_error($query, $error) { // Insert error log into a table $sql_insert_error = "INSERT INTO error_log (query, error) VALUES ('{$query}', '{$error}')"; mysqli_query($link, $sql_insert_error); }
使用 mysqli 或 die 可能看起來很方便,但由於其缺點,不建議使用。相反,將 MySQLi 配置為拋出異常並優雅地處理錯誤。透過這樣做,您可以確保應用程式具有彈性,即使在發生錯誤時也能提供更好的使用者體驗。
以上是mysqli 或死亡:我們應該擁抱異常而不是立即終止嗎?的詳細內容。更多資訊請關注PHP中文網其他相關文章!