“PDO Last 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 “PDO Last ID”

Fragen ähnlich wie “PDO Last ID”

Weitere verwandte Antworten zu “PDO Last ID” auf PHP

Durchsuchen Sie beliebte Code-Antworten nach Sprache

Durchsuchen Sie andere Codesprachen