如前所述,如果您正在執行 INSERT/UPDATE 或 DELETE 查詢,並且想知道受影響的列數,您應該使用 pg_affected_rows() 而不是 pg_num_rows()。
然而,您也可以在查詢中利用 postgres 的 RETURNING 子句,從受影響的列中自動選擇欄位。這樣做的好處是,不僅可以知道查詢影響了多少列,還可以準確地知道是哪些列,尤其是在返回主鍵欄位時。
例如
<?php
$res = pg_query("Update foo set bar = 'new data' where foo.bar = 'old data' ");
pg_num_rows($res); pg_affected_rows($res); pg_fetch_all($res); $res = pg_query("Update foo set bar = 'new data' where foo.bar = 'old data' RETURNING foo.pkey");
pg_num_rows($res); pg_affected_rows($res); pg_fetch_all($res); ?>