2012-02-14 69 views
0

我正在嘗試做一個準備好的查詢,可以用來選擇任意數量的用戶,並且還從基本搜索功能中對它們進行過濾。PHP PDO似乎沒有拿起第一個問號

它看起來像這樣:

$ALL_MEMBERS = $database->prepare("SELECT * FROM Users WHERE Username LIKE '%?%' LIMIT ?, ?") 

但PDO似乎並沒有被拾起的是第一個「?」介於'%'之間。任何想法爲什麼?

(它給了我一個錯誤,當我給3個參數,說有量錯了,而它並沒有給兩個參數時)

+4

用戶貢獻PHP手冊筆記有[此](http://www.php.net/manual/ en/pdostatement.bindparam.php#99698)說 – 2012-02-14 12:02:59

+0

感謝您的鏈接,解決了它 – 2012-02-14 12:05:01

回答

4

您可能會將PDO與報價和百分比混淆,它正在尋找一個?標記。寫爲:

$database->prepare("SELECT * FROM Users WHERE Username LIKE ? LIMIT ?, ?"); 

,然後使第一變量作爲:

$database->execute(array('%'.$A.'%',$B,$C)); 
2

我相信你需要這樣做:

$ALL_MEMBERS = $database->prepare("SELECT * FROM Users WHERE Username LIKE ? LIMIT ?, ?") 

PDO應該已經爲你包裝了字符串。