A voir également:
- Last_insert_id() php
- Easy php - Télécharger - Divers Web & Internet
- Php?id=1 - Forum PHP
- \R php ✓ - Forum PHP
- Php if plusieurs conditions ✓ - Forum PHP
- Echo image php ✓ - Forum PHP
1 réponse
Reivax962
Messages postés
3672
Date d'inscription
jeudi 16 juin 2005
Statut
Membre
Dernière intervention
11 février 2021
1 011
11 juin 2008 à 10:04
11 juin 2008 à 10:04
Bonjour,
Tant que tu gardes ouverte ta session MySQL, il te donne le dernier ID inséré pour cette session. Donc une session différente par utilisateur (puisque chacun a eu droit à son mysql_connect), ce qui permet de ne pas s'emmêler les pinceau entre des connexions simultanées.
Par contre, pour plus de simplicité, je te suggère d'utiliser la fonction php mysql_insert_id() décrite ici : https://www.php.net/manual/fr/function.mysql-insert-id.php Tout est géré...
Xavier
Tant que tu gardes ouverte ta session MySQL, il te donne le dernier ID inséré pour cette session. Donc une session différente par utilisateur (puisque chacun a eu droit à son mysql_connect), ce qui permet de ne pas s'emmêler les pinceau entre des connexions simultanées.
Par contre, pour plus de simplicité, je te suggère d'utiliser la fonction php mysql_insert_id() décrite ici : https://www.php.net/manual/fr/function.mysql-insert-id.php Tout est géré...
Xavier
11 juin 2008 à 10:25
ou alors je vais récupérer le last_insert_id() de la base?
ou je vais quand même récupérer le last_insert_id() de bob (c'est le petit surnom de robert ;)?
parce que ma fonction executer_requete($requete) fait un truc du genre :
->je me connecte
->je sélectionne la base
->j'exécute la requete
->je mysql_close()
sinon rapport à la doc php de mysql_insert_id(), ce qui me fait peur c'est ça :
Attention
mysql_insert_id() convertit le type de valeur retourné par la fonction C de MySQL C mysql_insert_id() en type PHP long (appelé int en PHP). Si votre colonne de type AUTO_INCREMENT est une colonne de type BIGINT, la valeur retournée par mysql_insert_id() sera incorrecte. À la place, utilisez la fonction interne MySQL LAST_INSERT_ID() dans une requête SQL.
11 juin 2008 à 14:46
<?php
//...connection etc...
mysql_query("INSERT blabla bla");
mysql_close();
//...connection etc...
mysql_fetch_array($last_id = mysql_query("SELECT LAST_INSERT_ID()"));
$dernier_identifiant = $last_id['']; //là question est là c'est quel nom de champ qu'il faut que je mette?
?>
12 juin 2008 à 09:34
12 juin 2008 à 10:36
Parce que les mysql_close, normalement, ça ne sert... à rien, à moins d'avoir vraiment de gros besoins d'optimisation.
En effet, si tu ouvres tes connexions de façon normale (non persistente), le close() est fait tout seul par php à la fin de la page :
Citation :
> https://www.php.net/manual/fr/function.mysql-connect.php :
Note: La connexion au serveur sera fermée aussitôt que l'exécution du script se termine, à moins qu'elle soit fermée avant en appelant explicitement mysql_close().
Donc, à mon avis, la solution la plus simple à ton problème est de supprimer tes mysql_close() :)
12 juin 2008 à 11:10
en tout cas merci de m'aider sur ce coup là.