获取最后插入的mysql行的id

时间:2014-01-19 20:00:51

标签: mysql perl

在数据库中,将自动生成此行的ID。如果在此代码中的execute和SELECT之间执行INSERT,则会返回错误的id。是否有更好的替代方法来获取id并保证它将来自我插入的行。我理解这两个陈述会非常接近,但我仍然想知道是否有更好的方法。

my $sthH = $dbh->prepare("INSERT INTO hardware (cpu_type, cpu_count, memory) VALUES (?,?,?)");
$resultH = $sthH->execute($cpu_type, $cpu_count, $memory);
$hardware_id = $dbh->selectrow_array("SELECT MAX(hardware_id) FROM hardware;");

1 个答案:

答案 0 :(得分:1)

这就是我这样做的方式,以防你仍然遇到问题

$sth->execute() or $self->error( __PACKAGE__, __LINE__,  
                                 DBI->errstr, DBI->err, 0, 1, 0);   
$sth->finish();
return ($dbh->{mysql_insertid});