11

我想我了解 PostgreSQL 和 RETURNING 的工作原理——我找到了很多很多资源。如果我赶上,它看起来像

"INSERT INTO table (column2, column3) VALUES ('value1', 'value2') RETURNING id;"

但是,我找不到任何可以帮助我通过 PHP 访问它的东西。当我认为我想通了,我尝试了

$new_id = pg_query($dbc, "INSERT INTO table (column2, column3) ".
"VALUES ('value1', 'value2') RETURNING id;");
return $new_id;

但它返回 NULL。我还尝试使用一个查询分别执行和声明变量。在寻找解决方案数小时后,我选择了 max(id) SELECT 语句/函数,但它仍然困扰着我。任何帮助是极大的赞赏。

我正在使用 Postgres 8.4 和 PHP 5.3。

4

1 回答 1

21

$new_id不包含 id 但它是一个资源描述符。您需要从中获取数据,因为查询将是一个 SELECT,pg_fetch_array($new_id)例如。

PostgreSQL的RETURNING子句投影插入或修改行的任何字段,即INSERT|UPDATE … RETURNING id, field1, field2.

于 2012-10-25T14:34:13.357 回答