[英]How can I use the '%' wildcard with a LIKE statement in PDO SQL?
我已经尝试了一段时间,但没有成功地使我的代码查询MYSQL数据库中的博客帖子标签。 这是当前形式的代码:
$tags = explode(", ", $filter);
$insert = "";
foreach ($tags as $key => $tag) {
if ($key === 0) {
$insert .= "where tags like :tag_{$key}";
}
else {
$insert .= " or tags like :tag_{$key}";
}
}
$query = $inDatabase->prepare("select * from blog_posts
{$insert}
order by :order");
foreach ($tags as $key => $tag) {
$query->bindParam("tag_{$key}", '%' . $tag . '%');
}
$query->bindParam(":order", $order);
$query->execute();
return $query->fetch(PDO::FETCH_ASSOC);
我努力了:
$query->bindParam("tag_{$key}", "%$tag%");
$insert .= "where tags like '%' || :tag{$key} || '%'
$insert .= "where tags like %?%";
[...] $query->bindParam($key, $tag);
但是所有这些都没有运气,我总是收到此错误: 无法通过引用传递参数2 ,并且总是在将标记参数绑定到其相应变量的行上发生(例如, $query->bindParam("tag_{$key}", '%' . $tag . '%');
)。
有任何想法吗?
只需将bindParam
更改为bindValue
。 这就是错误消息告诉您的内容。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.