我的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);
列是可变的,所以我必须绑定它,不能直接将它放入查询中。
我在这里做错了什么?我尝试过很多东西,但没有运气......
请注意,如果列是静态的,我知道如何绑定值,我的问题是当列也像上面一样变量时。
答案 0 :(得分:-1)
它应该是bindParam,但你可以用一个数组执行它,就像我这样做:
$query = $db->prepare( 'SELECT * FROM table WHERE column=\':value\' ORDER BY id DESC' );
$query->execute(array(
':value' => $value
));