Alan Haggai Alavi Alan Haggai Alavi - 5 months ago 12
Perl Question

How can I fetch the last row I inserted using DBI?

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. :-)

Answer

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

$sth->{mysql_insertid}