使用没有数据库包装器的 PHP 记录 mysql 查询

Posted

技术标签:

【中文标题】使用没有数据库包装器的 PHP 记录 mysql 查询【英文标题】:Log mysql queries using PHP without a DB wrapper 【发布时间】:2018-08-20 07:21:54 【问题描述】:

在我的例子中,mysqli php 扩展用于访问 mysql 服务器。 这是一个 WordPress 网站,但最近许多插件从使用 wpdb 包装器切换,因为其他插件正试图通过钩子来操纵查询。

我需要记录选定用户的查询。我相信这只能通过使用 php 过滤和记录查询来实现。

在调用mysqli_query()之前或之后是否可以在php中获取查询?

P.S:我正在寻找通用解决方案,所以我可以在我的插件中实现它。

【问题讨论】:

MySQL 提供日志所有常规查询,只需在 my.ini 中的mysqld 部分下设置general_log = 1general_log_file = absolute/path/file.log 您可以扩展mysqli类并重载mysqli_query()方法。 【参考方案1】:

不,使用原始 PHP 是不可能的。

您始终可以编写自己的数据库包装器并在您的插件中使用它。甚至鼓励您这样做,因为原始 mysqli 作为对 Mysql C API 的精简包装器,几乎无法按原样使用,并且无论如何都必须包装在帮助程序库中。

【讨论】:

这里不能使用包装器。我需要跟踪其他插件查询。

以上是关于使用没有数据库包装器的 PHP 记录 mysql 查询的主要内容,如果未能解决你的问题,请参考以下文章

是否有用于无符号数字类型包装器的 Java 库? [关闭]

使用没有对象包装器的 Jquery $.grep 过滤对象数组

使用 MediaInfo 加上包装器的 Python 错误

带有“你的意思是”的搜索引擎 [重复]

为 Javascript API 创建飞镖包装器的好方法是啥?

Swift | 属性包装器