2009-08-31 6 views
3

Comment accéder à la ligne qui vient d'être insérée dans une BD avec PHP/MySQL?Accéder à la dernière ligne créée dans PHP/MySQL

Je:

$sql = 'INSERT INTO `jos_db`.`jos_sections` (`id`, `name`) VALUES (NULL, \'foo\')'; 
    mysql_query($sql, $dbi); 

    bar(); 

Comment puis-je accéder à la nouvelle ligne dans la barre()?

+4

Beaucoup de choses pourraient être google-recherchées, mais ne préféreriez-vous pas le trouver sur stackoverflow? ; o) –

+2

Voté parce que je pense que c'est une question légitime qui ne mérite pas le mauvais karma d'un vote négatif. Aussi: Je suis d'accord avec Jon, que ce n'est pas parce que ça peut * être googlé * que c'est contraire au but de Stackoverflow, qui, si je me souviens bien, est quelque chose comme 'être la programmation définitive questions-réponses/site de solutions sur internet. –

+0

C'est une bonne question, alors "ne grondez pas les débutants!" et y a-t-il un administrateur qui peut consolider la demi-douzaine de variations mineures sur cette même question? Utiliser mysql_insert_id() obtient l'identifiant de la nouvelle ligne, en supposant que 'id' est un champ d'auto-incrémentation. –

Répondre

10

Si vous colonne 'id' est un auto-incrément, vous pouvez utiliser mysql_insert_id:

récupère l'ID généré pour une AUTO_INCREMENT colonne par la précédente INSERT requête.


L'exemple donné dans le manuel ressemble à ceci:

$link = mysql_connect('localhost', 'mysql_user', 'mysql_password'); 
if (!$link) { 
    die('Could not connect: ' . mysql_error()); 
} 
mysql_select_db('mydb'); 

mysql_query("INSERT INTO mytable (product) values ('kossu')"); 
printf("Last inserted record has id %d\n", mysql_insert_id()); 
3

Utiliser la fonction mysql_insert_id() sélectionner la dernière ligne insérée dans la base de données.

SELECT rows from table where id = last_inserted_id 
1

Utilisation de la fonction PHP mysql_insert_id() renverra l'identifiant de la dernière ligne que vous avez inséré.

Questions connexes