Php 用Laravel 5.1中的类似内容编制报表

Php 用Laravel 5.1中的类似内容编制报表,php,laravel-5.1,prepared-statement,Php,Laravel 5.1,Prepared Statement,祝你节日快乐 这是laravel 5.1中的原始查询 $select = DB::select(DB::raw("SELECT * FROM `grids` INNER JOIN masters ON grids.q_id=masters.q_id LEFT JOIN qrs ON qrs.qr_id= masters.qr_id AND qrs.mi_cd = grids.mi_cd WHERE grids.mi_cd='ZZ' AND

祝你节日快乐

这是laravel 5.1中的原始查询

 $select = DB::select(DB::raw("SELECT * FROM `grids` INNER JOIN masters ON 
        grids.q_id=masters.q_id LEFT JOIN qrs ON qrs.qr_id= masters.qr_id
         AND qrs.mi_cd = grids.mi_cd WHERE grids.mi_cd='ZZ' 
         AND substr(grids.q_id,1,3)='".$user->id."' 
         AND grids.q_id LIKE '___".trim(":year")."%' AND qrs.submitted=1"),
      [':year'=>'$year']
      );
我的问题是,如果我在laravel原始查询中使用带有like的prepare语句,那么找不到数据。如果我使用不带prepare语句的语句,那么它将被sql注入。
有没有办法,用类似的语句编写语句,在Laravel原始查询中

您仅使用DB::raw的任何特定原因?使用查询生成器可以轻松完成大部分查询,如
->where
->join
?有时查询会很复杂,那么我只有一个解决方案原始查询。我的问题是,在Laravel原始查询中,是否有任何方法可以使用like编写语句???where('grids.q_id','like','uu_'.trim($year)。%')Laravel查询生成器负责SQL注入本身,除非使用
DB::raw()
。也许这有帮助:
DB::table('grids')->选择('*')->leftJoin('masters','grids.q_id','=','masters.q_id')->leftJoin('qrs',function('join){$join->on('qrs.qr_id','=','masters.qr_id')->where('qrs.mi_cd','=','grids.mi_cd'))->where('grids.mi_cd','=','ZZ where'->where('substr('grids.q_id,1,3'),'=','user id->where('grids.q_id','like','uy'))->where('utrim)“%”)->其中('qrs.submitted','=',1);