-6ren">
gpt4 book ai didi

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

转载 作者:可可西里 更新时间:2023-10-31 23:24:05 25 4
gpt4 key购买 nike

我正在使用准备好的语句,例如:

$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 准备好的语句中提取查询,您建议采用什么策略来调试查询?

最佳答案

您可以扩展SQLite3 类并通过覆盖prepare 方法包装SQLite3Stmt 对象。在包装器中实现 bindValueexecute 方法并在 SQLite3Stmt 对象上调用它们(在此处添加日志记录)。要完成它,您可以添加 magic __get__call 函数用于您未拦截的任何方法/属性。

为此,您必须将“new SQLite3”更改为“new SQLite3Debug”(假设您的扩展类称为此)。

关于php - 有没有办法记录 SQLite 查询?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9629057/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com