我有以下代码(删除了实际数据)并成功将记录写入我的表。
$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
答案 0 :(得分:2)
如果您使用的是postgreSQL,可能会在此处发布相同的问题: Get last insert id after a prepared insert with PDO
你可能应该指定lastInsertId()方法的“name”参数:“应该从中返回ID的序列对象的名称。”