「Mysqli or Die」的危險:PHP 中的替代錯誤處理
當使用mysqli 擴充與MySQL 資料庫互動時,它使用「or die」結構來處理錯誤是常見的做法。然而,這種方法存在一些值得探索的缺點。
為什麼「Or Die」應該消失?
「Or Die」的替代品
強烈建議配置mysqli在錯誤時拋出異常,而不是依賴“or die” 。這可以透過以下程式碼來實現:
mysqli_report(MYSQLI_REPORT_ERROR | MYSQLI_REPORT_STRICT);
隨後,無需任何額外程式碼即可執行MySQL 命令:
$result = mysqli_query($link, $sql);
異常處理
當異常發生時,可以被捕獲並進行適當的處理。例如:
try { $result = mysqli_query($link, $sql); } catch (mysqli_sql_exception $e) { // Log the error in a custom table or file log_error($e->getMessage()); }
自訂錯誤日誌記錄
除了異常處理之外,還需要建立一個自訂的錯誤日誌系統。這允許將錯誤記錄在專用表或檔案中,從而提供用於故障排除的集中儲存庫。日誌功能可以實現如下:
function log_error($message) { // Connect to the error logging table database $error_conn = connect_to_error_logging_db(); // Insert the error message into the error logging table $query = "INSERT INTO error_log (message, timestamp) VALUES ('$message', NOW())"; mysqli_query($error_conn, $query); // Close the error logging database connection mysqli_close($error_conn); }
以上是為什麼「mysqli_query() 或 die()」是一種不好的做法,有哪些更好的選擇?的詳細內容。更多資訊請關注PHP中文網其他相關文章!