在数据库中,将自动生成此行的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;");
答案 0 :(得分:1)
这就是我这样做的方式,以防你仍然遇到问题
$sth->execute() or $self->error( __PACKAGE__, __LINE__,
DBI->errstr, DBI->err, 0, 1, 0);
$sth->finish();
return ($dbh->{mysql_insertid});