雄辩的选择语句给了我一个错误

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 子句[重复]

来自DB的Laravel雄辩错误选择数据

Flutter:我正在使用 post api 将文件上传到数据库。但它给了我一个错误

我正在创建两个表,在其中一个表中我试图分配一个外键,但它给了我一个错误

“pragma omp parallel for”中的“omp_get_num_threads”给了我编译错误

当子查询没有引入 EXISTS 错误时,选择列表中只能指定一个表达式