如何在插入新记录后立即获取自动增量ID

时间:2014-10-13 14:12:46

标签: php mysql sql

我的脚本采用包含人员详细信息的CSV文件,并使用“INSERT INTO table”将它们输入到mySQL数据库表中。表的主键是它们的ID号,每次插入时都会自动递增。

每次插入后我都会有一些PHP在服务器上为它们创建一个目录。目录名是他们自动生成的mySQL ID号。

如何在将详细信息插入数据库后获取自动生成的ID号,以便为每个人创建目录?

3 个答案:

答案 0 :(得分:1)

<强> PDO:

$last_id = $db->fetchAll('SELECT LAST_INSERT_ID() as last_id');  
$last_id = intval($last_id[0]['last_id']);

OR

$lastId = $db->lastInsertId();

答案 1 :(得分:1)

这是一个完整的回滚示例:

<?php 
try { 
    $dbh = new PDO('mysql:host=localhost;dbname=test', 'username', 'password'); 

    $stmt = $dbh->prepare("INSERT INTO test (name, email) VALUES(?,?)"); 

    try { 
        $dbh->beginTransaction(); 
        $tmt->execute( array('user', 'user@example.com')); 
        $dbh->commit(); 
        print $dbh->lastInsertId(); 
    } catch(PDOExecption $e) { 
        $dbh->rollback(); 
        print "Error!: " . $e->getMessage() . "</br>"; 
    } 
} catch( PDOExecption $e ) { 
    print "Error!: " . $e->getMessage() . "</br>"; 
} 
?> 

我们使用PDO与数据库进行通信,并知道最后一个id:$ dbh-&gt; lastInsertId()

答案 2 :(得分:-5)

您可以使用mysqli_insert_id函数。

docs here.