繁体   English   中英

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

[英]SQLSTATE[42000]: Syntax error or access violation: 1064 laravel

在我的 Laravel 代码中,我使用DB来访问数据库。 在名为showTeacherList的 controller function 中,我试图获取每位老师的所有作品。 但是 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循环中。 您错过了分隔querybindings的逗号。

代替:

$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]);

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM