Можете ли вы поместить заполнители в выбранную часть запроса с использованием PDO?

Я планирую использовать механизмы prepare() и execute() для PDO для предотвращения атаки SQL-инъекций.

Обычно заполнители в SQL находятся в условной части.

Например, select name, age from members where age > ? and gender = 'f'; select name, age from members where age > ? and gender = 'f';

Однако можно ли поместить заполнители в выбранную часть?

select name, age, ? from members where age > ? and gender = 'f';

Я знаю, что я не могу помещать имена столбцов, но могу ли я поместить константу? как

select name, age, 'foo' from members where age > ? and gender ='f';

Благодарю.

Solutions Collecting From Web of "Можете ли вы поместить заполнители в выбранную часть запроса с использованием PDO?"

Неа. PDO не может деактивировать имена столбцов или таблиц.

Если вам действительно нужно использовать динамические имена таблиц, безопасный способ справиться с ними не проверяет, действительно ли они существуют в таблице, и вставляя их в запрос обычным способом.

Псевдо-код:

 $fieldname = make_sure_this_field_really_exists($_GET["fieldname"]); $PDO->prepare("select name, age, `$fieldname` from members where age > ? and gender = 'f';" ... );