在 PHP 中为 PostgreSQL 查询绑定列名的变量

3

我需要从PHP动态生成需要在Postgresql中更新的列名。以下是代码和错误信息:

$Col = "dog_".$Num."_pic";
$query_params = array(
        ':user_id_' => $CustomerID,
        'dog_path' => $filePath,
        'dog_col' => $Col)
        ;

$sql = "UPDATE users
        SET 
            `:dog_col`=:dog_path
        WHERE `username`=:user_id_";

我还尝试将字符串与pg_escape_string()一起使用。

这是错误信息:

"SQLSTATE[42S22]: Column not found: 1054 Unknown column ''dog_1_pic'' in 'field list'"}
1个回答

4

你不能在查询中绑定列名:

$sql = "UPDATE users 
        SET `:dog_col`=:dog_path
        WHERE `username`=:user_id_";

在这种情况下,您必须使用如下变量:
    $column = 'myColumn';

    $sql = "UPDATE users
            SET $column = :dog_path
            WHERE username = :user_id_";

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接