PostgreSQL currval lastval函数返回一个字符串而不是一个数字

时间:2013-09-03 05:02:02

标签: php postgresql heroku

我正在尝试使用PostgreSQL currval函数来检索自动生成的串行字段,但我得到的是字符串而不是int。我的代码在

之下
$q ="insert into       contest(name,email,cam_b,cam_e,room_num,game,amount,phone_no)values('$name','$mail','$d','$dd','o','$game','$amount','$phone')";
$q1=pg_query($q)or die(pg_last_error());
$q5="select currval('contest_no_seq')";
$v=pg_query($q5)or die(pg_last_error());

$ v返回资源ID#5而不是int值,我似乎无法使用strpos函数来获取#

的位置
$er=strpos($v,'d');
if($er===false)
echo "not";
else
echo "$er -";

我在Heroku上使用PostgreSQL。

1 个答案:

答案 0 :(得分:0)

我不明白究竟返回了什么,但最好在insert命令中返回序列值:

$q = "
    insert into contest (
      name, email,cam_b, cam_e, room_num, game, amount, phone_no
    ) values (
    '$name','$mail','$d','$dd','o','$game','$amount','$phone'
    ) returning id
";
上面的

returning id是序列列。