tags:

views:

112

answers:

2

How can I fetch the last row that was inserted using DBI (DBD::mysql)?

Code sample:

my $sth = $dbh->prepare('INSERT INTO a ( x, y, z ) VALUES ( ?, ?, ? )');
$sth->execute( $x, $y, $z );

How can I get access to the data that was inserted by the above prepare statement? I need to get the primary ID (AUTOINCREMENT) value.

UPDATE:

From DBD::mysql documentation:

An alternative way for accessing this attribute is via $dbh->{'mysql_insertid'}.

Thank you Manni and n0rd for your answers. :-)

+5  A: 

This is a property of the statement handle. You should be able to access the ID like that:

$sth->{mysql_insertid}
innaM
+5  A: 

SELECT LAST_INSERT_ID() query will also return what you want.

n0rd