PHP-PostgreSQL错误更新表

PHP-PostgreSQL错误更新表,php,postgresql,sql-update,syntax-error,Php,Postgresql,Sql Update,Syntax Error,我从数据库中获取一些值,并将它们显示在一些文本字段中。当我更改一个特定的值并尝试将其存储回数据库时,这是正确的。但当我尝试对任何其他文本字段中的任何其他值执行相同操作时,我会得到错误“syntax error at or near where”。有什么想法吗 'UPDATE table1 SET "intcolumn"='. $value .', "stringcolumn"=\''. $value2.'\''.' WHERE "column2"='.$value3); intcolumn上

我从数据库中获取一些值,并将它们显示在一些文本字段中。当我更改一个特定的值并尝试将其存储回数据库时,这是正确的。但当我尝试对任何其他文本字段中的任何其他值执行相同操作时,我会得到错误“syntax error at or near where”。有什么想法吗

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

intcolumn上的更新已正确完成。在stringcolumn上,我得到了错误,即使我只更新stringcolumn,将撇号改为引号并将值放在分隔符中也会有助于可读性。 这将使调试更容易,更容易发现,而不必转义字符等

pg_query($db, "UPDATE table1 SET intcolumn={$value}, stringcolumn='{$value2}' WHERE column2={$value3}");
更好的方法是使用pg_query_参数,让postgre担心转义字符,并停止注入攻击

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

使用事先准备好的语句,问题就会消失
echo
ing查询将使错误易于发现。此外,您对SQL注入持开放态度。我知道SQL注入。我现在不关心这件事。谢谢我将尝试与SQL注入相关的tiBE,因为您不知道如何正确地转义值。这是一个复杂且容易出错的过程,这就是为什么几乎每个看到这类代码的人都说要使用预先准备好的语句的原因。是的,我知道。我的意思是,现在该页面处于脱机状态,正在开发中,还有其他优先事项。谢谢