我進行如下查詢
$lessonIDs = DB::table($personType."_has_lesson")->where("id",$userID)->pluck("lesson_id");
$lessons = DB::table("lesson")->where("lesson_id",$lessonIDs)->get();
的值lessonIDs是["EEZ401","EEZ02","EEZ403"]
我知道我們可以在 Laravel 上使用陣列進行查詢,但它會回傳SQLSTATE[HY093]: Invalid parameter number: parameter was not defined (SQL: select * from "lesson" where "lesson_id" = EEZ401). 我做了一些研究,發現這是laravel 上的一個錯誤,然后我更新了專案,但composer update沒有任何改變。
- 資料庫是postgresql
- Laravel 版本是 9.10.1
uj5u.com熱心網友回復:
Where 條件不支持陣列,而您必須使用WhereIn條件
$lessonIDs = DB::table($personType."_has_lesson")->where("id",$userID)->pluck("lesson_id");
$lessons = DB::table("lesson")->whereIn("lesson_id",$lessonIDs)->get();
轉載請註明出處,本文鏈接:https://www.uj5u.com/ruanti/468577.html
標籤:php 拉拉维尔 PostgreSQL
