PHP查询,获取新创建记录的默认序列值

PHP查询,获取新创建记录的默认序列值,php,sql,postgresql,Php,Sql,Postgresql,对于一个测验网站,我正在为一个问题创建一个记录,并希望直接获得它的questionid,这样我就可以在创建答案记录时使用它。插入时创建的questionid是自动生成的序列值 我是PHP新手,不知道如何获得这个值,因为这个id是唯一唯一标识这个新创建的记录的方法。有没有办法这样做 这是我创建新记录的代码 $questioncreatequery = pg_query("INSERT INTO question (questionid, quizid, questiontype, qdescrip

对于一个测验网站,我正在为一个问题创建一个记录,并希望直接获得它的questionid,这样我就可以在创建答案记录时使用它。插入时创建的questionid是自动生成的序列值

我是PHP新手,不知道如何获得这个值,因为这个id是唯一唯一标识这个新创建的记录的方法。有没有办法这样做

这是我创建新记录的代码

$questioncreatequery = pg_query("INSERT INTO question (questionid, quizid, questiontype, qdescription, qfilelocation, noofanswers, answertype) VALUES( default, '".$thisquizid."', '".$questiontype."', '".$qdescription."', '".$qfilelocation."', '".$noofanswers."', '".$answertype."')");

谢谢您的时间。

获取所需内容的最简单方法是使用
RETURNING
子句,从
INSERT
语句中返回如下值:

$questioncreatequery = pg_query("INSERT INTO question (questionid, quizid, questiontype, qdescription, qfilelocation, noofanswers, answertype) VALUES( default, '".$thisquizid."', '".$questiontype."', '".$qdescription."', '".$qfilelocation."', '".$noofanswers."', '".$answertype."') RETURNING questionid");
然后,您可以像使用任何查询结果一样使用
$questioncreatequery
,并获取您的值:

  $row = pg_fetch_assoc($questioncreatequery);
  echo $row['questionid']; // <= this is the value you want
$row=pg\u fetch\u assoc($questioncreatequery);

echo$row['questionid'];//你可以使用mysql\u insert\u id。link:
pg\u query()
是用于PostgreSQL的,所以
mysql\u insert\u id()
不起作用。@Grumpy这是PostgreSQL,不是mysql.oops,我的错,我只是看了php sql。非常好用,非常方便将来参考,谢谢!欢迎光临。请注意,您甚至可以使用返回多个列(
返回questionid、quizid、qdescription
)。它的行为非常类似于
SELECT
。您也可以返回多行。因此,如果您使用多个插入来执行此操作,您将按顺序返回所有问题ID。