这是有关PHP数据对象的常见问题列表
由于PDO具有常规PHP用户未知的某些功能,因此有关PDO中的预准备语句和错误处理的问题非常频繁.所以,这只是一个可以找到它们的地方.
如果您的问题已与此列表密切相关,请在下面找到您的问题并将修复程序应用于您的代码.对其他问题进行简要介绍也是一个好主意,让自己为其他常见陷阱做好准备.
也可以看看
如何使用mysqli使用LIKE进行查询并获得所有结果?
这是我的代码,但它不起作用:
$param = "%{$_POST['user']}%";
$stmt = $db->prepare("SELECT id,Username FROM users WHERE Username LIKE ?");
$stmt->bind_param("s", $param);
$stmt->execute();
$stmt->bind_result($id,$username);
$stmt->fetch();
Run Code Online (Sandbox Code Playgroud)
这段代码似乎不起作用.我搜索了很多.它也可能返回超过1行.那么即使它返回超过1行,我怎样才能获得所有结果呢?
$query = $connect->prepare("SELECT users.firstname, users.lastname, users.id
FROM users INNER JOIN users_friends ON users.id=users_friends.uID
WHERE bID=:USER AND type =:type AND accepted = '1' AND (users.firstname LIKE '%:queryString%' OR users.lastname LIKE '%:queryString%')
LIMIT 10");
$query->bindValue(":queryString", $queryString);
$query->bindValue(":type", $type);
$query->bindValue(":USER", $USER);
$query->execute();
Run Code Online (Sandbox Code Playgroud)
这就是我所拥有的.
我尝试bindValue然后在预准备语句中使用它时出错(%:queryString%)
Fatal error: Uncaught exception 'PDOException' with message 'SQLSTATE[HY093]: Invalid parameter number: number of bound variables does not match number of tokens'
Run Code Online (Sandbox Code Playgroud)
我怎么解决这个问题?