使用雄辩用作ORM时,如何记录查询失败的查询?
在使用雄辩作为ORM时,是否可以将数据库中的数据库中的查询失败? 我已经写了一个侦听器来进行日志查询,但是它只会记录成功的查询,并且我会发现失败的查询例外,而没有记录任何内容。 以下是我的听众代码:
$capsule->getConnection()->listen(function ($query) use ($headers) {
$values =array(
$_SERVER['SERVER_NAME'] . $_SERVER['PHP_SELF'],
$query->sql,
json_encode($query->bindings),
$headers[HeaderKey::USER_ID],
$headers[HeaderKey::IP_ADDRESS,
$headers[HeaderKey::SYS_KEY],
$query->time,
$query->connection->getDatabaseName(),
$query->connection->getConfig('username'),
$query->connection->getConfig('host'),
);
$t = "`SysDbLog_" . date('Y-m-d') . "`";
DB::connection('logdb')
->insert("insert DELAYED into $t (page,query,SerializedParam,UserID,IPAddress,SysCode,ExecuteTime,DBName,DBUser, DBHost, WebServer)
values (?,?,?,?,?,?,?,?,?,?,INET_ATON(SUBSTRING_INDEX(SUBSTRING_INDEX(USER(), '@', 2), '@', -1)))", $values);
});
$capsule->bootEloquent();
return $capsule;}
感谢任何帮助。
Is there a way to log failed queries in the database in Slim when using Eloquent as an ORM?
I have written a listener to log queries, however it only logs successful queries and I get exceptions for failed queries without anything being logged.
Below is my listener code:
$capsule->getConnection()->listen(function ($query) use ($headers) {
$values =array(
$_SERVER['SERVER_NAME'] . $_SERVER['PHP_SELF'],
$query->sql,
json_encode($query->bindings),
$headers[HeaderKey::USER_ID],
$headers[HeaderKey::IP_ADDRESS,
$headers[HeaderKey::SYS_KEY],
$query->time,
$query->connection->getDatabaseName(),
$query->connection->getConfig('username'),
$query->connection->getConfig('host'),
);
$t = "`SysDbLog_" . date('Y-m-d') . "`";
DB::connection('logdb')
->insert("insert DELAYED into $t (page,query,SerializedParam,UserID,IPAddress,SysCode,ExecuteTime,DBName,DBUser, DBHost, WebServer)
values (?,?,?,?,?,?,?,?,?,?,INET_ATON(SUBSTRING_INDEX(SUBSTRING_INDEX(USER(), '@', 2), '@', -1)))", $values);
});
$capsule->bootEloquent();
return $capsule;}
I would appreciate any help.
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(1)
您可以使用数据库
orm
,例如eloquent
将Slimphp应用程序连接到数据库。您可以仅使用Loggerinterface
。您可以在官方网站中找到更多信息。https://www.slimframework.com/docs.com/docs/docs/docs/cookbook/数据库-Eloquent.html
You can use a database
ORM
such asEloquent
to connect your SlimPHP application to a database. You can just working withLoggerInterface
. More information you can find in official site.https://www.slimframework.com/docs/v3/cookbook/database-eloquent.html