共计 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 网 – 提供最优质的资源集合!
正文完