Быстрый способ узнать id последнего вставленного в БД элемента
У php-шников есть удобная функция last_insert_id(), которая возвращает id записи, которая была последней вставлена текущим соединением. Perl-овики обычно пишут свою аналогичную функцию, которая обычно выглядит так:
sub last_insert_id {
my $q="SELECT LAST_INSERT_ID() AS 'last'";
my $sth = $dbh->prepare($q); #$dbh — это объект DBI
$sth->execute;
my $ans = $sth->fetchrow_arrayref;
return $ans->[0];
}
Видите в чем проблема? Осуществляется дополнительный запрос к базе. Это не есть гуд. Я выяснил, что узнать этот идентификатор можно гораздо проще.
Оказывается, он хранится, как свойство объекта-соединения с БД. И обратиться к нему можно просто:
print $dbh->{mysql_insertid};
Такая полезная фишечка поможет избежать лишних запросов и сэкономит время и память вам и вашему серверу.
http://dayte2.com/?u=shaman&act=state&num=133