PDO:选择使用预准备语句返回列名

3 php pdo prepared-statement

嘿伙计们,问一下这是否可能,也许我做的不对.

我正在尝试使用准备好的语句来准备列

SELECT ? FROM users
Run Code Online (Sandbox Code Playgroud)

现在,如果我放,这通常有用

SELECT id FROM users
Run Code Online (Sandbox Code Playgroud)

但是在执行第一个语句时,值是列名.

id = id
0 = 0

我做错了什么,或者这可能吗?

谢谢

Gal*_*len 6

不,您不能绑定列名称或表名称.

这里有更多信息在PDO语句中转义列名


Jon*_*ier 5

准备好的语句只能替换语句中的值而不是字段或列名,这是因为预编译语句是在整个语句的功能中进行预编译和优化的,除了值.

所以这是可能的:

SELECT id FROM users WHERE name=?
Run Code Online (Sandbox Code Playgroud)

但不是这个:

SELECT ? FROM users WHERE name='john'
SELECT id FROM ? WHERE name='john'
SELECT id FROM users WHERE ?='john'
Run Code Online (Sandbox Code Playgroud)