PHP MySQL PDO lastInsertID вызывает фатальную ошибку - PullRequest
11 голосов
/ 20 декабря 2011

Я пытался просмотреть другие посты, но ничего не нашел именно то, что искал.

У меня есть запрос к БД

$sql = "INSERT INTO groups(Name) VALUES (:name)";
$dbs = $dbo->prepare($sql);

$dbs->bindParam(":name", $_POST['name'], PDO::PARAM_STR);

$dbs->execute();

$groupID = $dbs->lastInsertId();

Это возвращает эту фатальную ошибку:

[Tue Dec 20 13:59:23 2011] [error] [client 127.0.0.1] PHP Fatal error:  Call to undefined method PDOStatement::lastInsertId() in /media/Storage/www/2011/admin/public/ajax.users.php on line 87, referer: http://localhost/2011/admin/public/menu.php?page=users

Согласно руководству по php для PDO :: lastInsertId ():

Если драйвер PDO не поддерживает эту возможность, PDO :: lastInsertId () запускает IM001 SQLSTATE.

Как мне определить, поддерживает ли мой сервер lastInsertId ()? Я не вижу IM001 в моем журнале ошибок.

Когда я запускаю это, данные вставляются нормально, но я не могу получить их ID для использования в следующем наборе INSERT, которые устанавливают разрешения группы.

1 Ответ

28 голосов
/ 20 декабря 2011

lastInsertId () - это метод класса PDO, а не класса PDOStatement.

Это должно работать:

$groupID = $dbo->lastInsertId();
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...