我正在用PHP 5.3与Pear MDB2一起工作。我正在编写一个更新数据库的项目,在让它开始更改数据之前,我想查看autoPrepare()和execute()生成的SQL查询在实际执行之前的样子。如何获取Pear MDB2生成的SQL而不执行它?
我打算这样创建和执行更新查询:
$stmt = $db->extended->autoPrepare($tableName, $tableColumns,
MDB2_AUTOQUERY_UPDATE, 'id = ' . $db->quote(12345, 'integer'),
$tableColumnTypes));
$res =& $stmt->execute($tableColumnValues);
我已经知道我可以通过访问$stmt->query
看到autoPrepare()
与占位符值生成的SQL。我希望看到由生成的已完成的SQL,其值用于替换占位符,而不实际将查询发送到数据库。
我该怎么做?
哦,我知道了...我想我早就听说过这件事,但我忘了它。它与Pear MDB2'autoExecute()'(不是'autoPrepare()')方法有什么不同?文档(http://pear.php.net/manual/en/package.database.mdb2.intro-auto.php)似乎表明查询将包含列值而不是占位符。 – 2011-06-10 13:15:53
@L S:从代码中我可以看到,'autoExecute'调用'autoPrepare',所以不会有任何区别。 – netcoder 2011-06-10 13:22:55