“PHP PDO Last Insert ID” Code-Antworten

PHP PDO Last Insert ID

$stmt = $db->prepare("...");
$stmt->execute();
$id = $db->lastInsertId();
Distinct Dolphin

PDO Last ID


Beware of lastInsertId() when working with transactions in mysql. The following code returns 0 instead of the insert id.



<?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', '[email protected]'));

        $dbh->commit();

        print $dbh->lastInsertId();

    } catch(PDOExecption $e) {

        $dbh->rollback();

        print "Error!: " . $e->getMessage() . "</br>";

    }

} catch( PDOExecption $e ) {

    print "Error!: " . $e->getMessage() . "</br>";

}

?>



When no exception is thrown, lastInsertId returns 0. However, if lastInsertId is called before calling commit, the right id is returned.
Adventurous Anaconda

Ähnliche Antworten wie “PHP PDO Last Insert ID”

Fragen ähnlich wie “PHP PDO Last Insert ID”

Weitere verwandte Antworten zu “PHP PDO Last Insert ID” auf PHP

Durchsuchen Sie beliebte Code-Antworten nach Sprache

Durchsuchen Sie andere Codesprachen