Я использую 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, так как я могу передать $q
на запрос в Laravel? Все, что я пытаюсь сделать, это сделать запрос безопасным для 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# союзы), чтобы узнать, что ваша проблема использует союз. –
Проверьте это http://stackoverflow.com/questions/20864872/how-to-bind-parameters-to-a-raw-db-query-in-laravel-thats-used-on-a-model ответ о привязке параметров , – aleksejjj