嘿伙计们,问一下这是否可能,也许我做得不对。
我正在尝试使用准备好的语句来准备列
即
SELECT ? FROM users
现在,如果我放
,这通常有效SELECT id FROM users
但是做第一个语句时,值是列名。
id = id
0 = 0
我做错了什么,或者这可能吗?
由于
答案 0 :(得分:6)
否您无法绑定列名或表名。
答案 1 :(得分:5)
预准备语句只能替换语句中的值而不是字段或列名,这是因为预编译语句是在整个语句的功能中进行预编译和优化的,除了值。
所以这是可能的:
SELECT id FROM users WHERE name=?
但不是这样:
SELECT ? FROM users WHERE name='john'
SELECT id FROM ? WHERE name='john'
SELECT id FROM users WHERE ?='john'