我想我理解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.
$new_id不包含id,但它是一个资源描述符.您需要从中获取数据,因为查询将是SELECT,例如pg_fetch_array($new_id).
Postgresql的RETURNING子句投影插入或修改的行的任何字段,即INSERT | UPDATE … RETURNING id,field1,field2.