照亮\数据库\ QueryException(HY093)SQLSTATE [HY093]:无效的参数号

时间:2019-05-10 13:20:33

标签: sql database laravel eloquent

我正在尝试选择所有帖子中的user_id,其中id是while循环中的当前索引并且其vote1,并将其转换为数字数组。

但是,它一直给我这个错误:

Illuminate \ Database \ QueryException (HY093)
SQLSTATE[HY093]: Invalid parameter number (SQL: select `user_id` from `laravellikecomment_likes` where (`item_id` = 1 and `vote` = ?))

我不知道现在该怎么办。这是我的代码(部分代码):

$db='laravellikecomment_likes';


  $allposts= DB::table($db)->where('vote','!=',0)->get()->pluck('user_id');
  $allposts = $allposts->toArray();

  $tn=count($allposts);
  $ai=0;
  $user=Auth::id();

  while ($ai <= $tn) {
     $recclist=array();
     $current=array_keys($allposts,$ai);
     $id=1;
     $wl=DB::table($db)->where(function ($query) use ($current, $id) {
        $query->where('item_id', '=', $current);
        $query->where('vote','=',$id);
    })->pluck('user_id');

1 个答案:

答案 0 :(得分:0)

引发的错误与您的查询有关

$wl=DB::table($db)->where(function ($query) use ($current, $id) {
    $query->where('item_id', '=', $current); # This line is the culprit
    $query->where('vote','=',$id);
})->pluck('user_id');

抛出错误SQLSTATE[HY093]: Invalid Parameter number表示参数错误。在这种情况下,您尝试使用array期望Query Builderinteger的{​​{1}}。

如果要使用数组,请使用string而不是whereIn,如下所示:

where