按照PHP文檔PDO ::準備()增加了引號,所有的參數,使您不必擔心這樣做:與PDO加引號處理::準備()
「準備語句的參數不需要被引用;驅動程序自動處理這個,如果應用程序獨佔使用預準備語句,開發人員可以確保不會發生SQL注入(但是,如果查詢的其他部分正在建立與未轉義的輸入,SQL注入仍然是可能的)。「
對我來說這個問題是我構建查詢和數據庫結構的方式。通常,SQL語句的FROM部分不需要參數化,因爲Table可能會由直接用戶輸入定義。然而,我的代碼在某些地方是這種情況,因此我對參數化版本感到更加舒適。
而不是 SELECT * FROM tablename WHERE?=?
所以我的問題是這樣的,是可以防止我的PDO對象從周圍加入了FROM參數,以便我沒有得到我的臉上泛起SQL錯誤,引號?或者我必須以不同的方式做到這一點。
究竟是什麼問題? – jeroen 2012-01-16 18:01:10
它不一定會加引號。支持本機預處理語句的驅動程序將保留文字'?',數據庫服務器執行替換。 - 但是你需要解釋你的代碼在做什麼以及爲什麼這裏有問題。在FROM子句中添加「?」或「:placeholder」是字面字符串,不是綁定參數。 – mario 2012-01-16 18:03:12
對不起,我不小心撞到進入之前我打完的表名稱中使用PDO/MySQL的準備語句作爲參數]問題 – hamalnamal 2012-01-16 18:04:33