php - 如何将 column = value 绑定(bind)到 PDO 语句

标签 php mysql pdo

<分区>

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

SELECT * FROM table WHERE ? =?按 id 降序排序

我想将列名绑定(bind)到第一个 ? 并将值绑定(bind)到第二个 ?(列 = 值)

我尝试了很多事情,比如下面,但他们都失败了或者返回空数组(当应该有结果的时候)

返回空数组

$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);

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

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

Please note that I know how to bind values if column is static, my issue is when column is also variable like above.

最佳答案

它应该是 bindParam,但你也可以用里面的数组来执行它,我就是这样做的:

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

关于php - 如何将 column = value 绑定(bind)到 PDO 语句,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/30673998/

相关文章:

php - mysql重音不敏感和点不敏感搜索

mysql - 选择 MYSQL 之后进行连接

php - 具有 2 个条件的词搜索 PHP PDO

php - Web 服务器上的 mysql 客户端包版本是否影响 PHP 查询?

php - 在 Nginx 上模拟 Apache 目录别名

php - 未从数据库接收图像

javascript - 为什么ajax成功调用后jquery会中断?

php - mysql select/delete using join over 四个表

PHP PDO 表不更新数据

php - 如何在cakephp中使用mysql修剪功能