我一直在尝试让我的代码查询我的 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 . '%');
)的行上发生。
有任何想法吗?