У меня есть «сценарий / обработчик ajax», который возвращает кучу категорий продуктов в мой jqGrid. Sql выглядит так:
$sql = 'SELECT * FROM product_categories ORDER BY :sidx :sord LIMIT :start , :limit'; $sth = $dbh->prepare($sql); $sth->bindParam(':sidx', $sidx); $sth->bindParam(':sord', $sord); $sth->bindParam(':start', $start, PDO::PARAM_INT); $sth->bindParam(':limit', $limit, PDO::PARAM_INT); $sth->execute();
Теперь у меня уже возникла проблема с «$ start», потому что у PDO, по-видимому, есть проблема с LIMIT, поэтому я должен был явно определить ее как (int), чтобы вышеупомянутое могло работать. Моя следующая проблема заключается в том, что поля ORDER BY цитируются. Как остановить кавычки? Я мог бы просто передать значения «$ sidx» и «$ sord» непосредственно без их очистки, но это было бы опасно. Прямо сейчас вышеупомянутый SQL генерируется как:
SELECT * FROM product_categories ORDER BY 'product_category' 'asc' LIMIT 0 , 10
Когда мне действительно нужно это выглядеть:
SELECT * FROM product_categories ORDER BY product_category asc LIMIT 0 , 10