Usando PHP, MySQLi y Declaración Preparada, ¿cómo devuelvo el id de la fila insertada?


Quiero recuperar el id de una fila insertada en la base de datos, pero no se como hacer esto.

Intenté volver usando la cláusula SQL RETURNING id, pero no funciona.

¿Cómo puedo devolver el id después de insertar una fila?

Author: danjah, 2011-07-02

2 answers

Después de llamar al método execute() en el PreparedStatement, el id de la fila de inserción estará en el atributo insert_id. Sólo léelo.

$pstm->execute();
$pstm->insert_id;
 67
Author: Renato Dinhani,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/ajaxhispano.com/template/agent.layouts/content.php on line 61
2011-07-07 17:43:10
$newid = mysqli_insert_id($mysqli_db);

$mysqli_db es su conexión a la base de datos mysqli. Por lo que sé, no debería importar en qué camino insertó la fila (declaración preparada o directa INSERT INTO). mysqli_insert_id() debe devolver el id de la última fila insertada mediante esta conexión db.

La alternativa es hacer otra consulta como SELECT LAST_INSERT_ID();.

 6
Author: Marco,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/ajaxhispano.com/template/agent.layouts/content.php on line 61
2011-07-02 11:58:02