С mysqli и подготовленными заявлениями я могу ПРОЙТИ В ИМЕНАХ КОЛОННЫ, чтобы 'ЗАКАЗАТЬ' - PullRequest
1 голос
/ 08 июля 2011

Мне нужно иметь возможность использовать подготовленные операторы MYSQLI из соображений безопасности.

Мне нужно иметь возможность ORDER BY COLUMNNAME DIRECTION

Однако COLUMNNAME является ДИНАМИЧНЫМ, как и НАПРАВЛЕНИЕ (ASC/ DESC)

Когда я связываю параметры mysqli, я получаю

'COLUMNNAME' 'ASC' или 'COLUMNNAME' 'DESC'

Принимая во внимание то, что мне нужно, НЕТ ЦИТАТЫ ........

Есть ли способ сделать это?

Я видел, как кто-то спрашивал что-то подобное в Безопасны ли подготовленные PHP MySQLi запросы со связанными параметрами?

1 Ответ

0 голосов
/ 08 июля 2011

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

$sortorder = empty($sortorder) ? ' ORDER BY `some_column` ASC' : $sortorder;
$preparedStatement = $pdoObject->prepare('SELECT * FROM `whereever` WHERE `some_column` = :whatever ' . $sortorder);
$preparedStatement->bindValue(':whatever', 'whatever-the-value-is');
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...