当前位置: 首页 > 面试题库 >

如何调试PDO数据库查询?

曾高杰
2023-03-14
问题内容

在转向PDO之前,我通过连接字符串在PHP中创建了SQL查询。如果遇到数据库语法错误,则可以回显最终的SQL查询字符串,然后在数据库中自己尝试,然后对其进行调整,直到修复错误,然后将其重新放入代码中。

预先准备的PDO语句更快,更好,更安全,但是有一件令我困扰的事情:当最终查询发送到数据库时,我再也看不到。当我在Apache日志或自定义日志文件中收到有关语法的错误时(我将错误记录在一个catch块内),我看不到引起它们的查询。

有没有一种方法可以捕获由PDO发送到数据库的完整SQL查询并将其记录到文件中?


问题答案:

数据库日志中查找

尽管 Pascal MARTIN 认为PDO不会一次向数据库发送完整的查询是正确的, 但是ryeguy
关于使用DB的日志记录功能的建议实际上使我可以看到完整的查询是由数据库组装和执行的。

方法如下:(这些说明适用于Windows计算机上的MySQL-您的工作量可能会有所不同)

  • my.ini,下[mysqld]部分中,添加一个log命令,如log="C:\Program Files\MySQL\MySQL Server 5.1\data\mysql.log"
  • 重新启动MySQL。
  • 它将开始记录该文件中的每个查询。

该文件将快速增长,因此请确保在完成测试后将其删除并关闭日志记录。



 类似资料:
  • 我一直在玩R中的数据库查询,这些查询是在带有PostGIS扩展的Postgres数据库上执行的。这意味着我使用了一些没有R等价物的PostGIS函数。如果不是因为这个,我可能只是在本地测试数据帧上执行相同的函数,而不是在数据库连接上执行相同的函数,但是由于PostGIS函数,这是不可能的。 是否有一种简单的方法可以在测试数据库中创建测试数据并对其运行查询并评估结果?我有一个R不直接支持的WKB列,

  • 数据库抽象层 PDO 什么是 PDO PDO(PHP Data Object),数据库访问抽象层,统一各种数据库的访问接口。 PDO支持的数据库有如下(数据来自 php 官方网站) 驱动名称 支持的数据库 PDO_CUBRID Cubrid PDO_DBLIB FreeTDS / Microsoft SQL Server / Sybase PDO_FIREBIRD Firebird/Interba

  • 我已经建立了一个Access数据库,现在我正试图从SQL数据库将数据导入Access数据库表。Access数据库表现在是空的,我正试图从SQL数据库导入数据,只有一个键值。例如,我只想导入符合以下条件的数据。 我已经设置了到表的ODBC链接。我一直在寻找这样做的方法,但没有找到任何好的方法。 使现代化 找到了答案,对于任何需要知道如何做到这一点的人,以下是步骤。

  • 好吧,我的问题是这段代码没有返回任何内容,至少它没有打印任何内容。唯一有效的方法是$user_email,它可以打印用户的电子邮件。 代码: “用户”表包含7个不同的键: ID(bigint,主键,auto_increment),组(int),电子邮件(varchar),密码(varchar),用户名(varchar),名称(varchar),验证(int)。 "group"表包含3个不同的键:

  • 问题内容: 我是Nest的新手,我很可能不会像我想的那样创建查询。我的问题更多是教一个人钓鱼而不是给我一条鱼。但是,我将以当前问题为例。 我在ElasticSearch中有几个类型的文档。我将在下面不使用属性和公共修饰符来进行存根,只包含与查询有关的信息: 这些都很好,花花公子。我可以一个对象没有问题。我遇到的问题是试图弄清楚Nest如何格式化查询。我的近期目标是要找到最近的是释放到。我像这样设置

  • 问题内容: 新手提出的另一个问题。我有一个php变量,用于查询数据库的值。它存储在变量$ publish中,当用户单击超链接时,它的值(在数据库中)将更改。 后台发生的事情是我正在查询数据库表中存储在$ publish变量中的某些数据。如果$ publish为空,则会在弹出窗口中添加publish.html的链接。弹出窗口将处理一个表单,并将数据添加到数据库,这意味着$ publish不再为空。我