我已经阅读了有关如何编写这些查询的多个示例,但是我正在努力使此特定代码像在使用时运行 bindParam
bindParam
这是匹配以a开头的用户名的正确方法吗?
$term = "a"; $term = "'$term%'"; $sql = "SELECT username FROM `user` WHERE username LIKE :term LIMIT 10"; $core = Connect::getInstance(); $stmt = $core->dbh->prepare($sql); $stmt->bindParam(':term', $term, PDO::PARAM_STR); $stmt->execute(); $data = $stmt->fetchAll();
不,您不需要内部单引号 $term = "$term%";
$term = "$term%";
您现在正在运行的语句将尝试匹配'a%'而不是匹配a%
'a%'
a%
bindParam将确保在将所有字符串数据提供给SQL语句时自动正确引用。