相关疑难解决方法(0)

如何让查询生成器将其原始SQL查询输出为字符串?

给出以下代码:

DB::table('users')->get();
Run Code Online (Sandbox Code Playgroud)

我想获取上面的数据库查询生成器将生成的原始SQL查询字符串.在这个例子中,它将是SELECT * FROM users.

我该怎么做呢?

php sql laravel laravel-4 laravel-query-builder

470
推荐指数
25
解决办法
52万
查看次数

如何显示在MySQL上执行的最后查询?

是否有任何查询/方式显示在所有服务器上执行的最后查询?

mysql logging

449
推荐指数
6
解决办法
44万
查看次数

Doctrine - 如何打印出真正的sql,而不仅仅是准备好的语句?

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

$q = Doctrine_Query::create()->select('id')->from('MyTable');
Run Code Online (Sandbox Code Playgroud)

然后在函数中我添加各种where子句和适当的东西,就像这样

$q->where('normalisedname = ? OR name = ?', array($string, $originalString));
Run Code Online (Sandbox Code Playgroud)

稍后,在execute()查询该查询对象之前,我想打印出原始SQL以便检查它,并执行以下操作:

$q->getSQLQuery();
Run Code Online (Sandbox Code Playgroud)

但是,它只打印出准备好的语句,而不是完整的查询.我想看看它发送给MySQL的是什么,而是打印出一个准备好的声明,包括?'s.有没有办法看到'完整'的查询?

php mysql orm doctrine doctrine-query

153
推荐指数
13
解决办法
24万
查看次数

从PDO预处理语句中获取原始SQL查询字符串

有没有办法在预准备语句上调用PDOStatement :: execute()时获取原始SQL字符串?出于调试目的,这将非常有用.

php mysql sql pdo pdostatement

125
推荐指数
9
解决办法
9万
查看次数

从PDO预处理语句中检索(或模拟)完整查询

我两年前偶然发现了这个问题.

有没有办法在预准备语句上调用PDOStatement :: execute()时获取原始SQL字符串?出于调试目的,这将非常有用.

获胜的答案说明了这一点

[...]如果设置PDO属性PDO :: ATTR_EMULATE_PREPARES,您也可以获得所需的内容.在此模式下,PDO将参数插入到SQL查询中,并在执行()时发送整个查询.

但它没有提到如何获得结果查询字符串.我知道这是一个糟糕的主意,但在调试模式下这并不会让我感到困扰.有人知道怎么做这个吗?

PS如果有某种方式我可以重新开放/引起对原来两年前主题的关注,而不是打开一个新主题,请告诉我.

php pdo prepared-statement

13
推荐指数
1
解决办法
5466
查看次数

PDO调试 - 绑定后查看查询?

可能重复:
从PDO预处理语句中检索(或模拟)完整查询

我无法弄清楚为什么我的查询返回0行..它实现了一些非常动态的搜索功能,以及很多if/loop语句等等.为了调试它,我想确切地看到正在发送什么字符串到服务器.有没有办法通过PHP做到这一点?

有没有办法让服务器询问"最后一个查询是什么",或者告诉PDO"告诉我你发送了什么"?

我看到一个响应使用str_replace手动输入值代替:fieldValue,但它可能是一个语法问题(或者它可能是一个不正确的循环等),这种方法没有帮助.

使用bindValue(":fieldValue", $value);if如果有所作为.

编辑

事实证明if ($var="true") { ...这应该是一个简单的事情if ($var=="true") { ....我认为PHP在这个意义上与Java不一样吗?无论哪种方式,问题仍然存在(因为我经常遇到这个问题).我不得不使用一系列echo "You are Here";来查找此错误,因为它在技术上有效但不正确.如果我有最后的SQL语句,我可以看到"哦,我的代码添加了where column = true,必须经历错误的IF ...".

php mysql debugging pdo

12
推荐指数
1
解决办法
1万
查看次数

使用PHP PDO显示bindParam的值

是否有一种简单的方法来回显存储在绑定参数中的值.

$sql ="call storedproc(:firstname, :lastname)";
$stmt = $this->DBH->prepare($sql);
$stmt->bindParam(':firstname', $fname);
$stmt->bindParam(':lastname', $lname);

//I want to do this
echo $stmt->firstname;
$stmt->execute;
Run Code Online (Sandbox Code Playgroud)

php pdo

6
推荐指数
1
解决办法
6559
查看次数