如何将column = value绑定到PDO语句

时间:2015-06-05 19:06:15

标签: php mysql pdo

我的PDO语句中有这样的查询:

SELECT * FROM table WHERE ? = ? ORDER BY id DESC

我希望 将列名称 绑定到第一个?,将值设置为第二个?(列=值)

我尝试过很多东西,如下面的内容,但它们都会失败或返回空数组(当应该有结果时)

返回空数组

$query = "SELECT * FROM table WHERE ? = ? ORDER BY id DESC"
$db->prepare($query);
$stmt->bindValue(1, $column, PDO::PARAM_STR);
$stmt->bindValue(2, $value, PDO::PARAM_STR);

并且这个显示错误

$query = "SELECT * FROM table WHERE column = :value ORDER BY id DESC"
$db->prepare($query);
$stmt->bindColumn('column', $column);
$stmt->bindValue(':value', $value, PDO::PARAM_STR);

列是可变的,所以我必须绑定它,不能直接将它放入查询中。

我在这里做错了什么?我尝试过很多东西,但没有运气......

  

请注意,如果列是静态的,我知道如何绑定值,我的问题是当列也像上面一样变量时。

1 个答案:

答案 0 :(得分:-1)

它应该是bindParam,但你可以用一个数组执行它,就像我这样做:

$query = $db->prepare( 'SELECT * FROM table WHERE column=\':value\' ORDER BY id DESC' );
$query->execute(array(
  ':value' => $value
));
相关问题