php – 有没有办法记录SQLite查询?

我正在使用预备语句,如:

$MysqLite = new sqlite3("test.sqlite", sqlite3_OPEN_READWRITE);
$stmnt = $MysqLite->prepare("INSERT INTO Friends VALUES(?,?,?)");
$stmnt->bindValue(1,4,sqlite3_INTEGER);
$stmnt->bindValue(2,"Jane",sqlite3_TEXT);
$stmnt->bindValue(3,"F",sqlite3_TEXT);
$stmnt->execute();

有没有办法在使用预准备语句时记录查询

编辑:
如果无法从sqlite3预处理语句中提取查询,您会建议调试查询的策略是什么?

解决方法:

您可以通过重写prepare方法来扩展sqlite3类并包装sqlite3Stmt对象.在您的包装器中实现bindValue并执行方法并在sqlite3Stmt对象上调用它们(在此处添加日志记录).要完成它,您可以为您没有拦截的任何方法/属性添加magic __get和__call函数.

为此,您必须将“new sqlite3”更改为“new sqlite3Debug”(假设您的扩展类称为此).

相关文章

统一支付是JSAPI/NATIVE/APP各种支付场景下生成支付订单,返...
统一支付是JSAPI/NATIVE/APP各种支付场景下生成支付订单,返...
前言 之前做了微信登录,所以总结一下微信授权登录并获取用户...
FastAdmin是我第一个接触的后台管理系统框架。FastAdmin是一...
之前公司需要一个内部的通讯软件,就叫我做一个。通讯软件嘛...
统一支付是JSAPI/NATIVE/APP各种支付场景下生成支付订单,返...