Я хотел бы знать, когда мы используем необработанный запрос внутри построителя запросов в компоновщике запросов laravel следующим образом.
$salesdata = DB::table('HEADER')
->join('BRANCH', 'HEADER.BRANCHCODE', '=', 'BRANCH.BRANCHCODE')
->select('HEADER.BRANCHCODE','BRANCH.BRANCHNAME',
DB::raw('SUM("HEADER"."AMT") as netamt'),
DB::raw('SUM("HEADER"."AMT") + SUM("HEADER"."DISCOUNT")- SUM("HEADER"."TAX1")- SUM("T_CASH_HEADER"."TAX2") as grossamt'),'BRANCH.BRANCHNAME',
DB::raw('SUM("HEADER"."COVER") as NetCover'),
DB::raw('SUM("HEADER"."DISCOUNT") as discount'),DB::raw('SUM("HEADER"."TAX1") as tax'),DB::raw('round(SUM("HEADER"."AMT")/SUM("HEADER"."COVER"),2) as avg'))
->whereBetween('HEADER.INVOICEDATE', [$fromDate, $toDate])
->groupBy('BRANCH.BRANCHCODE','BRANCH.BRANCHNAME','HEADER.BRANCHCODE')
->orderBy('AMT','ASC')
->get();
Я хотел бы знать, вышеупомянутый запрос может быть уверен для SQL инъекций с использованием laravel.
Нет, вы не передали пользовательский ввод в оператор select, кроме как в ->whereBetween('HEADER.INVOICEDATE', [$fromDate, $toDate])
оператор, и это будет использовать привязку параметров PDO для предотвращения внедрения SQL. Так что это безопасно!
Других решений пока нет …