0

我正在尝试使用 PostgreSQLcurrval函数来检索自动生成的串行字段,但我得到的是一个字符串而不是一个 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 返回 Resource id #5 而不是 int 值,我似乎无法使用 strpos 函数来获取 # 的位置

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

我在 Heroku 上使用 PostgreSQL。

4

1 回答 1

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上面是序列列。

于 2013-09-03T11:36:56.423 回答