0

对于一个测验网站,我正在为一个问题创建一个记录,并希望在之后立即获得它的 questionid,以便我可以使用它来创建答案记录。在 INSERT 创建的 questionid 是自动生成的序列值。

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

这是我创建新记录的代码。

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

谢谢你的时间。

4

1 回答 1

2

获得所需内容的最简单方法是使用该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
于 2013-01-26T22:11:14.207 回答