我正在尝试制作一个准备好的查询,可用于选择任意数量的用户,并从基本搜索功能中过滤它们。
看起来像这样:
$ALL_MEMBERS = $database->prepare("SELECT * FROM Users WHERE Username LIKE '%?%' LIMIT ?, ?")
但PDO似乎没有首先发现'?'介于'%'之间。知道为什么吗?
(当我给出3个参数时,它给出了一个错误,说错误的数量,而在给出两个参数时没有;)
答案 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应该已经为你包裹了字符串。