Как я могу получить последнюю строку, которую я вставил с помощью DBI?
как я могу получить последнюю строку, которая была вставлена с помощью DBI (ДБР::в MySQL)?
код:
my $sth = $dbh->prepare('INSERT INTO a ( x, y, z ) VALUES ( ?, ?, ? )');
$sth->execute( $x, $y, $z );
как я могу получить доступ к данным, которые были введены выше prepare
заявление? Мне нужно получить основной идентификатор (AUTOINCREMENT
) значение.
обновление:
С ДБР::в MySQL документы:
альтернативный способ доступа к этому атрибут через
$dbh->{'mysql_insertid'}
.
3 ответов
Это свойство дескриптора инструкции. Вы должны иметь доступ к идентификатору, как это:
$sth->{mysql_insertid}
подход агностика базе, это использовать DBI ' s last_insert_id
метод. Этот подход помогает уменьшить зависимость от конкретной базы данных:
$dbh - >last_insert_id
$rv = $dbh->last_insert_id($catalog, $schema, $table, $field);
возвращает значение, идентифицирующее только что вставленную строку, если это возможно. Обычно это значение присваивается сервером базы данных столбцу с типом auto_increment или serial. Возвращает undef, если драйвер не поддерживает метод или не может определить значение.