共計 1340 個字符,預計需要花費 4 分鐘才能閱讀完成。
自動寫代碼機器人,免費開通
這篇文章主要介紹了 larval 中怎樣捕獲 mysql 錯誤,具有一定借鑒價值,需要的朋友可以參考下。希望大家閱讀完這篇文章后大有收獲。下面讓丸趣 TV 小編帶著大家一起了解一下。
larval 捕獲 mysql 錯誤的方法:1、使用 errorInfo 變量返回 SQLSTATE 錯誤和消息;2、使用異常處理程序“app/Exceptions/Handler.php 并偵聽 QueryExceptions”將所有 SQL 錯誤記錄到數據。
Laravel 使用 PDO,因此您可以使用 errorInfo 變量返回 SQLSTATE 錯誤和消息。基本上,您需要使用 $e- errorInfo;
如果要將所有 SQL 錯誤記錄到數據庫中,可以使用異常處理程序(app/Exceptions/Handler.php 并偵聽 QueryExceptions。像這樣的:
public function render($request, Exception $e)
switch ($e) {case ($e instanceof \Illuminate\Database\QueryException):
LogTracker::saveSqlError($e);
break;
default:
LogTracker::saveError($e, $e- getCode());
return parent::render($request, $e);
}
然后你可以用這樣的東西:
public function saveSqlError($exception)
$sql = $exception- getSql();
$bindings = $exception- getBindings()
// Process the query s SQL and parameters and create the exact query
foreach ($bindings as $i = $binding) {if ($binding instanceof \DateTime) {$bindings[$i] = $binding- format(\ Y-m-d H:i:s\} else {if (is_string($binding)) {$bindings[$i] = $binding
$query = str_replace(array( % , ?), array(%% , %s), $sql);
$query = vsprintf($query, $bindings);
// Here s the part you need
$errorInfo = $exception- errorInfo;
$data = [
sql = $query,
message = isset($errorInfo[2]) ? $errorInfo[2] : ,
sql_state = $errorInfo[0],
error_code = $errorInfo[1]
// Now store the error into database, if you want..
// ....
}
感謝你能夠認真閱讀完這篇文章,希望丸趣 TV 小編分享 larval 中怎樣捕獲 mysql 錯誤內容對大家有幫助,同時也希望大家多多支持丸趣 TV,關注丸趣 TV 行業資訊頻道,遇到問題就找丸趣 TV,詳細的解決方法等著你來學習!
向 AI 問一下細節
丸趣 TV 網 – 提供最優質的資源集合!
正文完