PHP,Postgres帮助使用RETURNING

reg*_*eah 8 php postgresql sql-returning

我想我理解PostgreSQL和RETURNING是如何工作的 - 我发现了许多很多资源.如果我抓住它,它会看起来像

"INSERT INTO table (column2, column3) VALUES ('value1', 'value2') RETURNING id;"
Run Code Online (Sandbox Code Playgroud)

但是,我找不到任何可以帮助我通过PHP访问它的东西.当我以为我想出来的时候,我试过了

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

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

我正在使用Postgres 8.4和PHP 5.3.

gre*_*reg 15

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

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

  • 总之,`$ query = pg_query("INSERT ... RETURNING id"); $ row = pg_fetch_row($ query); $ new_id = $ row ['0'];`!!! 谢谢! (3认同)