PHP - PostgreSQL 更新表时出错


PHP - PostgreSQL error updating table

我从数据库中获取一些值并将它们显示在一些文本字段上。当我更改一个特定值并尝试将其存储回数据库时,它已正确完成。但是当我尝试对任何其他文本字段中的任何其他值执行相同的操作时,我收到错误"语法错误在位置或附近"。有什么想法吗?

'UPDATE table1 SET "intcolumn"='. $value .', "stringcolumn"='''.  $value2.''''.' WHERE "column2"='.$value3);

对 intcolumn 的更新已正确完成。在字符串列上,即使我只更新字符串列,我也会收到错误

将撇号更改为引号并将值放在分隔符中将有助于提高可读性。这应该使调试更容易,更容易发现,而不必转义字符等。

pg_query($db, "UPDATE table1 SET intcolumn={$value}, stringcolumn='{$value2}' WHERE column2={$value3}");

更好的方法是使用pg_query_params,让 postgres 担心转义字符,并停止注入攻击。

$params = array($value, $value2, $value3);
pg_query_params($db, "UPDATE table1 SET intcolumn=$1, stringcolumn=$2 WHERE column2=$3", $params);