您好我在尝试更新数据库时遇到以下错误:
致命错误:未捕获的异常' PDOException'消息' SQLSTATE [42S22]:未找到列:1054未知列'' 1''在' where子句''
我通过POST获得三个变量它们是:
a)我要改变的栏目
b)列的新值
c)要更改哪一行的ID ...
我正在使用PDO,这是我的带有参数绑定和执行的查询:
$stmt = $db->prepare('UPDATE `artists` SET `:spalte` = `:wert` WHERE `id` = `:pk` ');
$stmt->bindParam(':spalte', $name);
$stmt->bindParam(':wert', $value);
$stmt->bindParam(':pk', $pk);
$stmt->execute();
我希望有人能理解这个错误...
最好的问候
戴夫
答案 0 :(得分:0)
您只能对值使用预准备语句参数,而不能使用字段名称。 - Vatev
确切地说,如果你想从变量中输入字段名,那么为什么不直接把它放在你的sql中。
这应该可以解决问题。
$stmt = $db->prepare('UPDATE `artists` SET `'.$name.'` = :wert WHERE `id` = :pk ');
要清理列名称,您可以使用PDO::quote