PDO: выбор с использованием подготовленного оператора возвращает имя столбца - PullRequest
3 голосов
/ 07 апреля 2011

Эй, ребята, вопрос, возможно ли это или нет, может быть, я что-то не так делаю.

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

т.е.

SELECT ? FROM users

Теперь это нормально работает, если поставить

SELECT id FROM users

Но при первом утверждении значением является имя столбца.

id = id
0 = 0

Что я делаю не так, или это возможно?

Спасибо

Ответы [ 2 ]

6 голосов
/ 07 апреля 2011

Нет, вы не можете связать имена столбцов или таблицы.

Подробнее см. Экранирование имен столбцов в операторах PDO

5 голосов
/ 07 апреля 2011

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

так что это возможно:

SELECT id FROM users WHERE name=?

но не это:

SELECT ? FROM users WHERE name='john'
SELECT id FROM ? WHERE name='john'
SELECT id FROM users WHERE ?='john'
...