“ SQLSTATE [42000]:语法错误或访问冲突:1064您的SQL语法有错误;

时间:2019-06-24 14:31:29

标签: php laravel laravel-5 eloquent

我在LARAVEL中有问题 我想在填写表格后选择手机。所以我有类型(手机,平板电脑),品牌(三星,oppo ...)和类型(S10 +,S3S ...),我想传递标记和性别参数来填写表格。但是当我去向那个家伙展示时,这给了我一个问题。

控制器:

public function affiche(){
    $listgenre = DB::select('select distinct genre_mobile from mobiles');
    return view('reparation.reparation', ['mobiles' => $listgenre]);
}

//affiche la page des marques après le genre 
public function affichemarque($genre){
    $listmarque = DB::select('
                    select distinct marque_mobile , genre_mobile from mobiles where genre_mobile = ?', [$genre]); 
    return view('reparation.marque', ['mobiles' => $listmarque]);
}

//Affiche Type of mobile après la marque
public function affichetype($genre, $marque){
$listtype = DB::select('select * from mobiles where genre_mobile = '.$genre.'and marque_mobile='.$marque);
    return view('reparation.type', ['mobiles' => $listtype]);
}

路线:

Route::get('reparation/rep', 'AppController@affiche'); //page choix telephone or tablette

Route::get('reparation/{genre}/marque', 'AppController@affichemarque'); //choix des marques (samsung, oppo, apple ...)

Route::get('reparation/{genre}/{marque}/type', 'AppController@affichetype'); //type( S3, S10+, s70 ...)

问题:

  

“ SQLSTATE [42000]:语法错误或访问冲突:1064   您的SQL语法错误;检查与您的手册相对应的手册   MariaDB服务器版本可在附近使用正确的语法   第1行的'marque_mobile = SAMSUNG'(SQL:从手机中选择*   genre_mobile = Telephoneand marque_mobile = SAMSUNG)◀“

1 个答案:

答案 0 :(得分:0)

SQL: select * from mobiles where genre_mobile = telephoneand marque_mobile=SAMSUNG

如果您很好地阅读了SQL查询,您将看到需要在AND和marque_mobile之间添加一个空格

$listtype = DB::select('select * from mobiles where genre_mobile = '.$genre.' and marque_mobile = '.$marque);

为避免这些错误,请始终以大写形式编写关键字,并尝试使用此方法或使用命名绑定进行串联:

$listtype = DB::select("SELECT * FROM mobiles WHERE genre_mobile = {$genre} AND marque_mobile = {$marque}" );
$listtype = DB::select("SELECT * FROM mobiles WHERE genre_mobile = :genre AND marque_mobile = :marque",['genre' => $genre, 'marque' => $marque]);

另外,我建议您使用Eloquent,这会更好地阅读,并且避免编写大型SQL查询。