我正在尝试使用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。
答案 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
是序列列。