mysql_insert_id
(PHP 4, PHP 5)
mysql_insert_id — Retourne l'identifiant généré par la dernière requête
Cette extension est obsolète depuis PHP 5.5.0, et sera supprimée dans le futur. À la place, les extensions MySQLi ou PDO_MySQL doivent être utilisées. Voir aussi le guide MySQL : choix de l'API ainsi que la FAQ associée pour plus d'information. Voici les alternatives à cette fonction :
Description
$link_identifier
= NULL
] )
Retourne le dernier identifiant généré par un champ de type AUTO_INCREMENT,
sur la connexion MySQL courante ou sûr la connexion
spécifiée par link_identifier
(habituellement, une
requête de type INSERT).
Liste de paramètres
-
link_identifier
-
La connexion MySQL. S'il n'est pas spécifié, la dernière connexion ouverte avec la fonction mysql_connect() sera utilisée. Si une telle connexion n'est pas trouvée, la fonction tentera d'ouvrir une connexion, comme si la fonction mysql_connect() avait été appelée sans argument. Si aucune connexion n'est trouvée ou établie, une alerte
E_WARNING
est générée.
Valeurs de retour
L'ID généré pour une colonne AUTO_INCREMENT par la dernière
requête en cas de succès, 0 si la dernière requête n'a pas
généré de valeur AUTO_INCREMENT, ou FALSE
si aucune connexion
MySQL n'a été établie.
Exemples
Exemple #1 Exemple avec mysql_insert_id()
<?php $link = mysql_connect('localhost', 'mysql_user', 'mysql_password'); if (!$link) { die('Impossible de se connecter : ' . mysql_error()); } mysql_select_db('mydb'); mysql_query("INSERT INTO mytable (product) values ('kossu')"); printf("Le dernier ID inséré dans est le id %d\n", mysql_insert_id()); ?>
Notes
mysql_insert_id() convertira le type retourné de la fonction native MySQL C API mysql_insert_id() en un type long (nommé int en PHP). Si votre colonne AUTO_INCREMENT a une colonne de type BIGINT (64 bits), la conversion peut résulter en une valeur incorrecte. À la place, utilisez la fonction SQL interne à MySQL LAST_INSERT_ID() dans une requête SQL. Pour plus d'informations sur les valeurs entières maximales en PHP, reportez-vous à la documentation sur les entiers.
Note:
Parce que mysql_insert_id() agit sur la dernière requête exécutée, assurez-vous d'appeler la fonction mysql_insert_id() immédiatement après l'exécution de la requête qui a générée la valeur.
Note:
La fonction MySQL LAST_INSERT_ID() contient toujours la valeur AUTO_INCREMENT la plus récente, et n'est pas remise à zéro entre deux requêtes.
Voir aussi
- mysql_query() - Envoie une requête à un serveur MySQL
- mysql_info() - Lit des informations à propos de la dernière requête MySQL