Ошибка Laravel: SQLSTATE [HY000]: общая ошибка: 1 рядом с «?» - PullRequest
0 голосов
/ 02 сентября 2018

Независимо от того, как я реструктурирую маршрут, я получаю эту ошибку от функции: (2/2) QueryException SQLSTATE [HY000]: общая ошибка: 1 рядом с «?»: Синтаксическая ошибка (SQL: выбрать * из заказа продукта по производителю asc).

Код, который я использую, следующий:

 function get_sort($type,$sort){
       $sql = "select * from product order by ? ?";
       $products = DB::select($sql,array($type,$sort));
       return $products;
   }

Пожалуйста, смотрите изображение, прикрепленное к вопросу. Любая помощь будет высоко ценится. enter image description here

1 Ответ

0 голосов
/ 02 сентября 2018

Невозможно связать ключевые слова и столбцы в подготовленных утверждениях. Возможно, лучше вместо этого использовать какой-нибудь белый список.

   $columns = ['id', 'name', 'price'];

   $type = in_array($type, $columns) ? $type : 'name';
   $sort = $sort === 'DESC' ? 'DESC' : 'ASC';

   $sql = "select * from product order by $type $sort";
...