web-dev-qa-db-fra.com

En utilisant PHP, MySQLi et Prepared Statement, comment puis-je retourner l'id de la ligne insérée?

Je veux récupérer l'id d'une ligne insérée dans la base de données, mais je ne sais pas comment faire.

J'ai essayé de revenir en utilisant la clause SQL RETURNING id, mais ne fonctionne pas.

Comment puis-je retourner l'identifiant après l'insertion d'une ligne?

37
Renato Dinhani

Après avoir appelé la méthode execute() sur le PreparedStatement, l'id de la ligne d'insertion sera dans le insert_id attribut. Lisez-le seulement.

$pstm->execute();
$pstm->insert_id;
83
Renato Dinhani
$newid = mysqli_insert_id($mysqli_db);

$mysqli_db Est votre connexion à la base de données mysqli. Pour autant que je sache, peu importe de quelle manière vous avez inséré la ligne (instruction préparée ou direct INSERT INTO). mysqli_insert_id() devrait retourner l'id de la dernière ligne insérée utilisant cette connexion db.

L'alternative est de faire une autre requête comme SELECT LAST_INSERT_ID();.

6
Marco

Ceci est incorrect, vous devez utiliser:

$stmt = $db->prepare("SQL Query");
$stmt->execute();
$id = $db->lastInsertId();
5
JrBriones