2011-12-20 14 views
11

Ho provato a cercare in altri post, ma non ho visto nulla di esattamente quello che sto cercando.PHP MySQL PDO lastInsertID causa l'errore irreversibile

Ho una domanda 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(); 

che restituisce questo errore fatale:

[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 

Secondo il manuale php per i prodotti DOP :: lastInsertId():

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

Come dovrei determinare se il mio server supporta lastInsertId()? Non vedo IM001 nel mio registro degli errori ovunque.

Quando si esegue questa operazione, i dati vengono inseriti correttamente, ma non riesco a ottenere l'ID da utilizzare nel successivo set di INSERT che imposta le autorizzazioni del gruppo.

risposta

28

lastInsertId() è un metodo della classe PDO, non della classe PDOStatement.

Questo dovrebbe funzionare:

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

LOL wow, mi sento stupido, grazie! – guyfromfl