可能重複:
Retrieve (or simulate) full query from PDO prepared statementPDO調試 - 在綁定後查看查詢?
我想不通爲什麼我的查詢返回0行..它實現了一些非常有活力的搜索功能,以及很多,如果/循環語句等。爲了調試它,我想看到什麼字符串正在發送到服務器。有沒有辦法通過PHP來做到這一點?
是否有方法可以詢問服務器「最後一個查詢是什麼」,或告訴PDO「向我顯示您發送的內容」?
我看到一個回覆使用str_replace
手動輸入值代替:fieldValue
,但它可能是一個語法問題(或者它可能是通過一個不正確的循環等),這種方法不起作用。
使用bindValue(":fieldValue", $value);
如果這有所作爲。
編輯
原來這是一個簡單的if ($var="true") { ...
應該已經if ($var=="true") { ...
。 PHP我猜在這個意義上和Java不一樣?無論哪種方式,問題仍然存在(正如我經常遇到這種情況)。我不得不使用一系列echo "You are Here";
來發現此錯誤,因爲它在技術上是有效的,但不正確。如果我有最終的SQL語句,我可以看到「哦,我的代碼已經添加了where column = true
,必須經歷錯誤的IF ......」。
如果準備/綁定不效仿,而你說話不存在任何地方查詢。語句和綁定對數據庫是不可或缺的。但是,在開發服務器上啓用'query_log'(永遠不要在生產環境中執行)可能會對已完成的操作有所瞭解。 – Wrikken
這就是事情;我不知道該怎麼嘗試。我通常使用簡單的'echo $ sql'來執行此操作,其中'$ sql'是我的語句,但是使用PDO(我是新來的),它只是向我顯示'SELECT column FROM table WHERE column =:fieldValue' which doesn如果哪裏的聲明最終在某處出錯,我將無法幫助我。 – StuckAtWork
[從PDO預備語句中檢索(或模擬)完整查詢](http://stackoverflow.com/questions/3754530/retrieve-or-simulate-full-query-from-pdo-prepared-statement)和http ://stackoverflow.com/questions/530627/getting-a-pdo-query-string-with-bound-parameters-without-executing-it和http:// stackoverflow。com/questions/1786322/in-php-with-pdo-how-to-check-the-final-sql-parametrized-query –