larval中怎样捕获mysql错误

65次阅读
没有评论

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

正文完
 
丸趣
版权声明:本站原创文章,由 丸趣 2023-12-18发表,共计1340字。
转载说明:除特殊说明外本站除技术相关以外文章皆由网络搜集发布,转载请注明出处。
评论(没有评论)