저는 Laravel을 사용합니다. 알다시피 Laravel은 쿼리에 UNION
절을 지원하지 않습니다. 그래서 전체 결과를 페이징하고 싶을 때 raw
으로 작성해야합니다. 이런 식으로 뭔가가 :어떻게 매개 변수를 쿼리에 전달할 수 있습니까?
$results = DB::select('SELECT id, title, description, imgPath
FROM news n
WHERE n.title LIKE %$q OR n.description LIKE %$q
UNION ALL
SELECT id, title, description, imgPath
FROM productions p
WHERE p.title LIKE %$q OR p.description LIKE %$q
');
나는 Laravel을 사용, 그래서 어떻게 Laravel에서 쿼리에 $q
를 전달할 수 말했듯이? 내가하려는 것은 SQL 인젝션에 대해 쿼리를 안전하게하는 것입니다. 그래서 쿼리에서 매개 변수를 직접 사용하는 대신 쿼리에 매개 변수를 전달하려고합니다.
순수 PHP에서이 같은 그 작업을 수행 할 수 있습니다
$st = $dbh->prepare('SELECT ... WHRER col LIKE %:q');
$st->bindParam(':q', $q, PDO::PARAM_INT);
내가 Laravel에서이^뭔가를 원한다.
https://laravel.com/docs/5.3/queries# ([여기를 클릭] union)을 사용하여 문제 조합을 찾습니다. –
확인하기 http://stackoverflow.com/questions/20864872/how-to-bind-parameters-to-a-raw-db-query-in-laravel-thats-used-on-a-model 매개 변수 바인딩에 대한 답변 . – aleksejjj