如何获取使用DBI(DBD :: mysql)插入的最后一行?
代码示例:
my $sth = $dbh->prepare('INSERT INTO a ( x, y, z ) VALUES ( ?, ?, ? )');
$sth->execute( $x, $y, $z );
Run Code Online (Sandbox Code Playgroud)
如何访问上述prepare语句插入的数据?我需要获取主ID(AUTOINCREMENT)值.
更新:
来自DBD :: mysql文档:
访问此属性的另一种方法是via
$dbh->{'mysql_insertid'}.
inn*_*naM 31
这是语句句柄的属性.您应该能够像这样访问ID:
$sth->{mysql_insertid}
Run Code Online (Sandbox Code Playgroud)
Gra*_*iln 28
数据库不可知的方法是使用DBI的last_insert_id方法.此方法有助于减少对特定数据库的依赖性:
$ dbh-> LAST_INSERT_ID
$rv = $dbh->last_insert_id($catalog, $schema, $table, $field);如果可能,返回"标识"刚刚插入的行的值.通常,这是由数据库服务器分配给具有auto_increment或serial类型的列的值.如果驱动程序不支持该方法或无法确定该值,则返回undef.
| 归档时间: |
|
| 查看次数: |
27596 次 |
| 最近记录: |