Php SQLSTATE[42000]:语法错误或访问冲突:1064 laravel

Php SQLSTATE[42000]:语法错误或访问冲突:1064 laravel,php,laravel,Php,Laravel,在我的Laravel代码中,我使用DB访问数据库。在名为showtheacherlist的控制器函数中,我试图获取每位教师的所有作品。但是Laravel返回了这个错误。当我转储查询时,将其复制到phpmyadmin并运行,它就工作了。我的代码: function showTeacherList($login){ $select_result = DB::select('select id, name from kafedra where login = ?', [$login]);

在我的Laravel代码中,我使用
DB
访问数据库。在名为
showtheacherlist
的控制器函数中,我试图获取每位教师的所有作品。但是Laravel返回了这个错误。当我转储查询时,将其复制到
phpmyadmin
并运行,它就工作了。我的代码:

function showTeacherList($login){
    $select_result = DB::select('select id, name from kafedra where login = ?', [$login]);
    $kafedra_id = $select_result[0]->id;
    $teachers = DB::select('select id, name from teacher where kafedra_id = ?', [$kafedra_id]);
    $teacher_works = [];
    $i = 0;
    foreach ($teachers as $teacher) {
        $teacher_works[$i] = DB::select('select * from work where teacher_id = ?' [$teacher->id]);
        $i++;
    }
    return view('kafedra/teacher_list', ['login' => $login, 'name' => $select_result[0]->name, 'teachers' => $teachers, 'teacher_works' => $teacher_works]);
}

请帮助,谢谢

您的
DB::select
语句中有语法错误,特别是在
foreach
循环中。您遗漏了一个逗号,用于分隔
查询
绑定

替换:

$teacher_works[$i] = DB::select('select * from work where teacher_id = ?' [$teacher->id]);
与:


请提供完整准确的错误消息。
$teacher_works[$i] = DB::select('select * from work where teacher_id = ?', [$teacher->id]);