【问题标题】:PDO : Select using a prepared statement returns column namePDO:使用准备好的语句选择返回列名
【发布时间】:2011-07-31 19:31:52
【问题描述】:

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

SELECT ? FROM users

现在如果我放,这通常可以工作

SELECT id FROM users

但是做第一条语句,值就是列名。

id = id
0 = 0

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

【问题讨论】:

  • pdo prepare 设置一个值,而不是字段名,因此您的查询很简单 SELECT 'id' FROM users not SELECT id FROM users
  • 不完全是我想要做的,但我从中得到了什么我不能做“SELECT?”

标签: php pdo prepared-statement


【解决方案1】:

不,您不能绑定列名或表名。

这里有更多信息Escaping column names in PDO statements

【讨论】:

  • 谢谢,没有足够的代表来支持你:(
【解决方案2】:

prepared statement 只能替换语句中的 value 而不是字段名或列名,这是因为prepared statement 是一种预编译和优化的,除了 value 之外的整个语句的功能。

所以这是可能的:

SELECT id FROM users WHERE name=?

但不是这个:

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

【讨论】:

  • 谢谢,没有足够的代表来支持你:(
猜你喜欢
  • 2015-07-13
  • 1970-01-01
  • 2014-08-04
  • 2016-12-30
  • 1970-01-01
  • 1970-01-01
  • 2014-09-15
相关资源
最近更新 更多