2011-12-20 4 views
11

Próbowałem przejrzeć inne posty, ale nie widziałem dokładnie tego, czego szukam.PHP MySQL PDO lastInsertID powoduje błąd krytyczny

Mam kwerendy DB

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

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

$dbs->execute(); 

$groupID = $dbs->lastInsertId(); 

która zwraca ten błąd krytyczny:

[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 

Według instrukcji PHP PDO :: lastInsertId():

If the PDO driver does not support this capability, PDO::lastInsertId() triggers an IM001 SQLSTATE.

Jak mógłbym określić, czy mój serwer obsługuje lastInsertId()? Nie widzę IM001 w moim dzienniku błędów w dowolnym miejscu.

Po uruchomieniu tego dane są wprowadzane poprawnie, ale nie mogę uzyskać jego identyfikatora do użycia w następnym zestawie instrukcji INSERT, które ustawiają uprawnienia grupy.

Odpowiedz

28

lastInsertId() jest metodą klasy PDO, a nie klasą PDOStatement.

To powinno działać:

$groupID = $dbo->lastInsertId(); 
+2

LOL wow, czuję głupie dzięki! – guyfromfl