“PHP PDO последняя идентификация вставки” Ответ

PHP PDO последняя идентификация вставки

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

PDO Последний идентификатор


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', '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>";

}

?>



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

Ответы похожие на “PHP PDO последняя идентификация вставки”

Вопросы похожие на “PHP PDO последняя идентификация вставки”

Больше похожих ответов на “PHP PDO последняя идентификация вставки” по PHP

Смотреть популярные ответы по языку

Смотреть другие языки программирования