2011-12-20 33 views
11

Intenté buscar en otras publicaciones, pero no vi nada exactamente lo que estoy buscando.PHP MySQL PDO lastInsertID causa un error fatal

Tengo una consulta 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(); 

que devuelve este error fatal:

[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 

De acuerdo con el manual de PHP para PDO :: lastInsertId():

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

Cómo ¿Debo determinar si mi servidor es compatible con lastInsertId()? No veo IM001 en mi registro de errores en ninguna parte.

Cuando ejecuto esto, los datos se insertan bien, pero no puedo obtener su ID para usar en el siguiente conjunto de INSERT que establece los permisos del grupo.

Respuesta

28

lastInsertId() es un método de la clase PDO, no de la clase PDOStatement.

Esto debería funcionar:

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

LOL wow, me siento gracias mudos! – guyfromfl

Cuestiones relacionadas