PDO lastInsertId не работает на транзакциях? - PullRequest
15 голосов
/ 02 августа 2011

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

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

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

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

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

1 Ответ

29 голосов
/ 02 августа 2011

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

Попробуйте

$this->dbh->beginTransaction();
// $sql query ran
echo $this->dbh->lastInsertId();
$this->dbh->commit();
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...