一尘不染

在bindParam中使用LIKE进行MySQL PDO查询

mysql

我已经阅读了有关如何编写这些查询的多个示例,但是我正在努力使此特定代码像在使用时运行 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();

阅读 424

收藏
2020-05-17

共1个答案

一尘不染

不,您不需要内部单引号 $term = "$term%";

您现在正在运行的语句将尝试匹配'a%'而不是匹配a%

bindParam将确保在将所有字符串数据提供给SQL语句时自动正确引用。

2020-05-17