PDO lastInsertId не работает с транзакциями?

Я использую PDO в первый раз с MySQL, просто играя с ним в данный момент.

Пока я пытаюсь сделать вставку, заключенную в транзакции...

$this->dbh->beginTransaction();
// $sql query ran
$this->dbh->commit();

echo $this->dbh->lastInsertId();

lastInsertId() возвращает 0... когда я запускаю тот же запрос вне транзакции, я получаю правильный номер идентификатора. Здесь что-то не хватает?

Ответы

Ответ 1

Вы должны запросить lastInsertId(), прежде чем совершить transaction

Try

$this->dbh->beginTransaction();
// $sql query ran
echo $this->dbh->lastInsertId();
$this->dbh->commit();