Dan*_*Dan 18 php mysql database pdo
我已经阅读了关于如何编写这些查询的多个示例,但我正在努力使这个特定的类似于在使用时运行 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();
Run Code Online (Sandbox Code Playgroud)
Har*_*hof 26
不,你不需要内部单引号 $term = "$term%";
您现在正在运行的声明将尝试匹配'a%'而不是a%
bindParam将确保在给予SQL语句时自动正确引用所有字符串数据.
您可以使用 bindValue ,假设您有一个$query = "search string"
$stmt->bindValue(':term', $query.'%'); // this will do like search for "search term XXXXX"
Run Code Online (Sandbox Code Playgroud)
相似地
$stmt->bindValue(':term', '%'.$query.'%');
Run Code Online (Sandbox Code Playgroud)
或者
$stmt->bindValue(':term', '%'.$query);
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
24469 次 |
| 最近记录: |