PHP PDO似乎没有提出第一个问号

时间:2012-02-14 12:01:00

标签: php pdo prepared-statement

我正在尝试制作一个准备好的查询,可用于选择任意数量的用户,并从基本搜索功能中过滤它们。

看起来像这样:

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

但PDO似乎没有首先发现'?'介于'%'之间。知道为什么吗?

(当我给出3个参数时,它给出了一个错误,说错误的数量,而在给出两个参数时没有;)

2 个答案:

答案 0 :(得分:4)

你可能会把PDO与引号和百分比混淆,它正在寻找一个?标记。把它写成:

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

然后将第一个变量设为:

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

答案 1 :(得分:2)

我相信你需要这样做:

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

PDO应该已经为你包裹了字符串。