1

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

有任何想法吗?

4

1 回答 1

2

只需更改bindParambindValue. 这就是错误消息告诉您的内容。

于 2013-08-10T14:46:25.737 回答