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

时间:2013-01-26 21:59:37

标签: php sql postgresql

对于测验网站,我正在为一个问题创建一个记录,并希望直接得到它的问题所以我可以用它来创建答案记录。在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."')");

感谢您的时间。

1 个答案:

答案 0 :(得分: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