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?
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;
$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();
.
Ceci est incorrect, vous devez utiliser:
$stmt = $db->prepare("SQL Query");
$stmt->execute();
$id = $db->lastInsertId();