我已经尝试了一段时间来获取我的代码来查询我的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 ,并且总是在标记参数绑定到相应变量的行上的ocurrs(例如,{{ 1}})。
有什么想法吗?
答案 0 :(得分:2)
只需将bindParam
更改为bindValue
即可。这是告诉你的错误信息。