我正在尝试选择所有帖子中的user_id
,其中id
是while循环中的当前索引并且其vote
是1
,并将其转换为数字数组。
但是,它一直给我这个错误:
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');
答案 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 Builder
或integer
的{{1}}。
如果要使用数组,请使用string
而不是whereIn
,如下所示:
where