雄辩的选择语句给了我一个错误
Posted
技术标签:
【中文标题】雄辩的选择语句给了我一个错误【英文标题】:select statements in eloquent gives me an error 【发布时间】:2019-11-29 13:30:52 【问题描述】:我仍然对 laravel 雄辩。我想用 eloquent 写下面的查询
SELECT * FROM tableA where id = $variableID AND grade_id = $gradeID
我在雄辩中尝试了以下内容:
$totalGreen = DB::select('SELECT * FROM tableA WHERE id = ? AND grade_id = ?',[$visitdetail->id],[1]);
但我收到此错误:
SQLSTATE[HY093]:参数号无效(SQL:SELECT * FROM tableA WHERE id = 5 ANDgrade_id = ?)
我浏览了 laravel 文档,但并没有真正找到任何专门回答我的问题的内容。请帮忙
【问题讨论】:
【参考方案1】:您需要将两个参数放在同一个数组中(选择查询的第二个参数):
$totalGreen = DB::select(
'SELECT * FROM tableA WHERE id = ? AND grade_id = ?',
[$visitdetail->id, 1]
)->get();
您也可以使用查询生成器来代替编写原始 SQL:
$totalGreen = DB::table('tableA')
->where('id', $visitdetail->id)
->where('grade_id', 1);
->get();
【讨论】:
【参考方案2】:像这样更改您的代码:
$totalGreen = DB::select('SELECT * FROM tableA WHERE id = ? AND grade_id = ?',[$visitdetail->id, 1]);
或者如果想使用 eloquent 你可以这样写:
$totalGreen = YourModel::where(['id'=> $visitdetail->id, 'grade_id'=>$gradeID])->get();
【讨论】:
以上是关于雄辩的选择语句给了我一个错误的主要内容,如果未能解决你的问题,请参考以下文章
简单选择给了我:PLS-00428:需要一个 INTO 子句[重复]
Flutter:我正在使用 post api 将文件上传到数据库。但它给了我一个错误
我正在创建两个表,在其中一个表中我试图分配一个外键,但它给了我一个错误