PHP PDO似乎没有抓住第一个问号

PHP PDO似乎没有抓住第一个问号,php,pdo,prepared-statement,Php,Pdo,Prepared Statement,我正在尝试创建一个准备好的查询,它可以用来选择任意数量的用户,还可以从基本的搜索功能中筛选他们 看起来是这样的: $ALL_MEMBERS = $database->prepare("SELECT * FROM Users WHERE Username LIKE '%?%' LIMIT ?, ?") 但PDO似乎没有在“%”之间拾取第一个“?”。知道为什么吗 当我给出3个参数时,它会给我一个错误,说数量不对,而当给出两个参数时,它不会给我错误,我相信你需要这样做: $ALL_MEMBER

我正在尝试创建一个准备好的查询,它可以用来选择任意数量的用户,还可以从基本的搜索功能中筛选他们

看起来是这样的:

$ALL_MEMBERS = $database->prepare("SELECT * FROM Users WHERE Username LIKE '%?%' LIMIT ?, ?")
但PDO似乎没有在“%”之间拾取第一个“?”。知道为什么吗


当我给出3个参数时,它会给我一个错误,说数量不对,而当给出两个参数时,它不会给我错误,我相信你需要这样做:

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

PDO应该已经为您包装了字符串。

我认为您需要这样做:

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

PDO应该已经为您包装了字符串。

您可能会将PDO与引号和百分比混淆,它正在寻找一个?做记号写为:

$database->prepare("SELECT * FROM Users WHERE Username LIKE ? LIMIT ?, ?");
然后将第一个变量设置为:

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

你们可能把PDO和报价和百分比搞混了,它在寻找一个更好的方法?做记号写为:

$database->prepare("SELECT * FROM Users WHERE Username LIKE ? LIMIT ?, ?");
然后将第一个变量设置为:

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

PHP手册中用户提供的注释必须对链接表示感谢,这就解决了问题PHP手册中用户提供的注释必须对链接表示感谢,这就解决了问题