PHP中用于Postgresql查询的列名绑定变量


Binding variable for column name in PHP for Postgresql query

我需要从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'"}

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

$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_";