在带有PDO的PHP中,如何检查最终的SQL参数化查询?

JB赫尔特

在PHP中,当使用带有参数化查询的PDO访问MySQL数据库时,如何检查最终查询(在替换了所有令牌之后)?

有没有办法检查数据库真正执行了什么?

JB赫尔特

因此,我想我将最终回答我自己的问题,以便为记录提供完整的解决方案。但是必须感谢本·詹姆斯和凯拉什·巴杜,他们为此提供了线索。

简短回答
正如本·詹姆斯所说:
完整的SQL查询在PHP端不存在,因为令牌查询和参数分别发送到数据库。仅在数据库端存在完整查询。

即使试图在PHP端创建一个函数来替换令牌,也不能保证替换过程与SQL相同(诸如令牌类型,bindValue与bindParam之类的小东西)。

解决方法
这是我详细介绍Kailash Badu的答案的地方。通过记录所有SQL查询,我们可以看到服务器上实际运行的内容。使用mySQL,可以通过更新my.cnf(或者在Wamp服务器中为my.ini)并添加如下代码行来完成:

log=[REPLACE_BY_PATH]/[REPLACE_BY_FILE_NAME]

只是不要在生产中运行它!!!

本文收集自互联网,转载请注明来源。

如有侵权,请联系 [email protected] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章

R中带有IN子句的参数化SQL查询

在带有PDO的PHP中,如何检查数据库是否包含所需的值

Postgresql中带有json数组的参数化查询

带有日期的PHP PDO复杂查询

带有参数的PHP PDO错误

PDO不会引发带有未绑定参数的异常(查询中没有变量)

在Go database / sql包中查看带有参数的查询

相关表中带有可选参数的 SQL 查询

PDO SQL查询中的参数无效

是否在没有参数化查询的情况下阻止PHP中的SQL注入?

如何在SQL Server中参数化具有特殊字符的查询?

带有动态参数的 MySQL 查询 (PHP)

如何在JavaScript中编写参数化的SQL查询?

如何通过php中的正则表达式在PDO查询中查找参数?

如何检查查询是否在PDO中没有返回结果

带有子查询的PHP PDO UPDATE语句

带有时间戳的参数化查询的MonetDB-PHP错误

PyCharm 检查 - 带有可替换参数的 mysql 查询

如何使用PDO PHP获取在SQL查询中形成的查询列及其数据类型信息

使用LIKE'%的SQL参数化查询?%'PHP

如何检查以确保最终列表中只有正值?

Mysql PDO:在查询中获取带有“动态”字段的行

带有 PDO 查询的多层架构中的优化问题

node-postgres中带有字符串文字的参数化查询

如何检查带有Java的列表中的数字(没有给定参数)

带有参数化类型的未经检查的强制转换警告

如何将易受攻击的 sql 查询转换为参数化查询 PHP

PHP - 带有 SQL 查询的构造函数

当参数有时可以为NULL时,如何参数化SQL查询?