PHP lastInsertId() - 返回上一个记录号

时间:2013-03-14 08:44:25

标签: php pdo auto-increment

我有以下代码(删除了实际数据)并成功将记录写入我的表。

$db = new database('db_name');
$sql='INSERT INTO table (fieldshere);';
$pds=$db->pdo->prepare($sql);
$pds->execute(array(datahere));

$_SESSION['userid'] = $db->pdo->lastInsertId();

我遇到的问题是它返回前一个记录号 - 例如:如果它刚刚写入记录号100,则返回99号。

我可以在表格行号上看到自动递增,这看起来很正常。例如:如果表行当前为100,则自动递增表示101(对于下一行)。

该表从0开始,但仍不确定这是否会出现问题。

任何事情都是表有一个userid列,它有自动增量,这是我需要的数字。

我有没有理由获得前一行号?

THX

1 个答案:

答案 0 :(得分:2)

如果您使用的是postgreSQL,可能会在此处发布相同的问题: Get last insert id after a prepared insert with PDO

你可能应该指定lastInsertId()方法的“name”参数:“应该从中返回ID的序列对象的名称。”