我正在用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