代码之家  ›  专栏  ›  技术社区  ›  Alan Haggai Alavi

如何获取使用DBI插入的最后一行?

  •  31
  • Alan Haggai Alavi  · 技术社区  · 15 年前

    如何获取插入的最后一行 DBI ( DBD::mysql )是吗?

    代码示例:

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

    如何访问上述插入的数据 prepare 声明?我要拿到主身份证( AUTOINCREMENT )价值。

    更新:

    数据库:MySQL 文档:

    另一种访问方法 属性是通过 $dbh->{'mysql_insertid'} .

    谢谢你 Manni n0rd 为了你的答案。-)

    3 回复  |  直到 8 年前
        1
  •  29
  •   innaM    15 年前

    这是语句句柄的属性。您应该能够访问这样的ID:

    $sth->{mysql_insertid}
    
        2
  •  25
  •   Graham Miln Andrey Vlasovskikh    8 年前

    数据库不可知方法是使用 DBI last_insert_id 方法。这种方法有助于减少对特定数据库的依赖:

    $dbh->最后插入\u id

    $rv = $dbh->last_insert_id($catalog, $schema, $table, $field);

    如果可能,返回一个值“标识”刚刚插入的行。通常,这是数据库服务器分配给具有自动递增或串行类型的列的值。如果驱动程序不支持该方法或无法确定值,则返回UNdef。

        3
  •  6
  •   Alan Haggai Alavi    15 年前

    SELECT LAST_INSERT_ID() query 也会归还你想要的。