“PHP PDO Ostatni identyfikator wstawki” Kod odpowiedzi

PHP PDO Ostatni identyfikator wstawki

$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

Odpowiedzi podobne do “PHP PDO Ostatni identyfikator wstawki”

Pytania podobne do “PHP PDO Ostatni identyfikator wstawki”

Więcej pokrewnych odpowiedzi na “PHP PDO Ostatni identyfikator wstawki” w PHP

Przeglądaj popularne odpowiedzi na kod według języka

Przeglądaj inne języki kodu