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”(假设您的扩展类称为此).

相关文章

SQLite架构简单,又有Json计算能力,有时会承担Json文件/RES...
使用Python操作内置数据库SQLite以及MySQL数据库。
破解微信数据库密码,用python导出微信聊天记录
(Unity)SQLite 是一个软件库,实现了自给自足的、无服务器...
安卓开发,利用SQLite实现登陆注册功能