我们使用的是Doctrine,一种PHP ORM.我正在创建这样一个查询:

$q = Doctrine_Query::create()->select('id')->from('MyTable');

然后在函数中适当地添加各种WHERE子句和内容,如下所示

$q->where('normalisedname = ? OR name = ?', array($string, $originalString));

稍后,在初始化该查询对象之前,我想打印出原始SQL以判断它,并执行以下操作:

$q->getSQLQuery();

然而,它只打印出准备好的语句,而不是完整的查询.我想看看它发送给MySQL的是什么,但它却打印出了一条准备好的语句,包括?条语句.有什么方法可以查看"完整"查询吗?

推荐答案

条令并没有向数据库服务器发送"真正的SQL查询":它实际上是在使用准备好的语句,这意味着:

  • 发送声明,以便准备(这是$query->getSql()返回的内容)
  • 然后,发送参数(由$query->getParameters()返回)
  • 并执行准备好的语句

这意味着在PHP端从来没有"真正的"SQL查询-因此,Doctrine不能显示它.

Php相关问答推荐

如何使用Ubuntu在同一台服务器上为多个版本构建相同的php扩展?

从产品中获取WooCommerce产品属性单选按钮的列表WP_Query

如何隐藏x轴图表上的值

Php解压缩deflate64

将购买限制在WooCommerce中具有相同产品属性的项目

如何实现对数据库表中多列的唯一约束?

WooCommerce短代码,显示特定产品的购物车徽章中的当前数量

带Redhat php curl的http_code 0

如果WooCommerce购物车在 checkout 时被清空,请重定向至store 页面

表单提交返回空白页

随机显示WordPress快捷代码功能时出现问题

Mac 上安装 php 时出现 Homebrew 错误

在 WooCommerce 中何时何地执行 woocommerce_order_status_completed_notification 挂钩?

在 php 中生成 MAC ISO/IEC 9797-1

无法读取某些 WordPress 主机上的 cookie

Laravel Eloquent:复杂的多对多关系以及缺失关系的默认值

PHP 创建 CSV 文件并用波斯语写入

为WooCommerce中的Guest用户保存唯一的客户代码到订单中

如何在 WooCommerce 中显示每个自定义选项卡的内容

laravel 中的 OrderBy json 列