2012-02-14 71 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应该已经为你包装了字符串。