PHP无法增加Postgres数据库中的值

PHP无法增加Postgres数据库中的值,php,sql,postgresql,Php,Sql,Postgresql,我需要一些帮助来理解一个奇怪的情况。我有一个postgres数据库“服务器”,带有ip inet和load integer列。我可以通过psql手动更新负载值,如下所示: UPDATE servers SET load = load + 100 WHERE ip = '10.10.10.10'; 我已经编写了一个php脚本来自动加载更新。但是,“value=value+x”语法现在不适用于我 这项工作: pg_query($conn, "UPDATE servers SET loa

我需要一些帮助来理解一个奇怪的情况。我有一个postgres数据库“服务器”,带有ip inet和load integer列。我可以通过psql手动更新负载值,如下所示:

UPDATE servers 
    SET load = load + 100 
WHERE ip = '10.10.10.10';
我已经编写了一个php脚本来自动加载更新。但是,“value=value+x”语法现在不适用于我

这项工作:

pg_query($conn, "UPDATE servers SET load = 100 WHERE ip = '10.10.10.10'");
这并不是:

pg_query($conn, "UPDATE servers SET load = load + 100 WHERE ip = '10.10.10.10'");
使用后者时,脚本将无限期挂起而不给出响应。我尝试过一些变化,比如在末尾添加一个或diepg_last_error子句。我还尝试使用pg_prepare和pg_execute语句。仍然没有输出,数据库也没有更改


我错过什么了吗?有没有一种简单的方法可以解决这个问题?我不想使用单独的查询来获取负载,这样我就可以将它添加回

我已经解决了这个问题。我不确定为什么这是一个问题,但事实证明,不管怎样,最佳实践最终帮助解决了这个问题

我没有运行单个pg_查询,而是设置了适当的变量并使用pg_查询参数。不管有什么问题,这可能是个好主意

$myQuery = "UPDATE servers SET load = load + $1 WHERE ip = '$2'";
$serverIP = '10.10.10.10';
$loadAdded = '1234';
$result = pg_query_params($conn, $myQuery, array($loadAdded, $serverIP));

同样,我也不知道为什么这解决了我的问题,但它确实解决了

显示您的创建表SQL。如果您在psql挂起时连接到PostgreSQL并从pg_stat_活动中选择*?正在等待吗?@DwayneTowell:根据工作策略,我无法提供数据库的详细信息。:/如前所述,我正在处理的列是一个inet列和一个整数列。@CraigRinger:查询没有显示在pg_stat_活动中。您在ip上有索引吗?和/或装载?