Précédent   Forum des professionnels en informatique > PHP > PHP & SGBD > PHP & MySQL
PHP & MySQL Forum d'entraide sur les fonctions MySQL avec PHP. Avant de poster -> FAQ MySQL, Cours MySQL et Sources MySQL. Pour les questions concernant le moteur MySQL plutôt que les fonctions PHP, merci d'utiliser le forum MySQL.
Partagez cette discussion sur d'autres réseaux sociaux : Viadeo Twitter Google Facebook Digg Delicious MySpace Yahoo
Réponse Proposer ce sujet en actualité
 
Outils de la discussion
Publicité
'
Vieux 14/01/2011, 15h16   #1
Membre du Club
 
Étudiant
Inscription : février 2007
Messages : 192
Détails du profil
Informations personnelles :
Âge : 23

Informations professionnelles :
Activité : Étudiant

Informations forums :
Inscription : février 2007
Messages : 192
Points : 52
Points : 52
Envoyer un message via MSN à jeanjean8501
Par défaut Informations complémentaires concernant mysql_insert_id()

Bonjour,

Je suis entrain de développer une application en PHP5 utilisant une BDD MySQL.
Dans mon application je dois développer une couche applicative de persistance en BDD et je me posais une question concernant la fonction "mysql_insert_id()"

Tout d'abord voici la fonction permettant de persister un enregistrement en base :

Code :
1
2
3
4
5
6
7
8
9
10
11
12
 
public function persistOneEnterprise($name,$login,$password,$logo)
    {
    	$reqPersistOneEnterprise = 'INSERT INTO `mabase`.`Enterprise` (`Name`, `Login`, `Password`, `Logo`) 
    								  VALUES("'.$name.'","'.$login.'","'.$password.'","'.$logo.'")';
 
    	if(!@mysql_query($reqPersistOneEnterprise, $this->mysqlConnection))
    	{	
    		throw new Exception('persistOneEnterprise Error '.$reqPersistOneEnterprise);
    	}
    	return mysql_insert_id();
    }
et voici comment j'appel ma fonction :

Code :
1
2
3
4
5
6
7
8
9
10
11
 
try{
		$enterprise = new CEnterprise();
		$miniWebsite = new CMiniWebsite();
 
		$idEnterprise = $enterprise->persistOneEnterprise("MonEntreprise", "root", "root", null);
		$miniWebsite->persistOneMiniWebsite($idEnterprise, 1);
	}
	catch (Exception $e){
		echo 'Exception reçue : ',  $e->getMessage(), "\n";
	}
Du fait que j'utilise une table de jointure, j'ai utilisé la fonction mysql_insert_id afin de pouvoir récupérer l'id d'un enregistrement effectué et de pouvoir l'enregistrer dans ma table de jointure.

Sachant que plusieurs utilisateurs peuvent persister en BDD en même temps je voulais savoir si il y avait un risque que les ID se mélangent.

J'espère avoir été assez clair


Merci pour votre aide
jeanjean8501 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 14/01/2011, 15h39   #2
Modérateur
 
Avatar de sabotage
 
Homme Vincent
Inscription : juillet 2005
Messages : 14 929
Détails du profil
Informations personnelles :
Nom : Homme Vincent

Informations forums :
Inscription : juillet 2005
Messages : 14 929
Points : 16 381
Points : 16 381
mysql_insert_id() retourne le dernier id autoincrementé dans la connexion en cours donc non ca ne se mélange pas.
sabotage est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 14/01/2011, 15h42   #3
Membre du Club
 
Étudiant
Inscription : février 2007
Messages : 192
Détails du profil
Informations personnelles :
Âge : 23

Informations professionnelles :
Activité : Étudiant

Informations forums :
Inscription : février 2007
Messages : 192
Points : 52
Points : 52
Envoyer un message via MSN à jeanjean8501
Merci pour ta précision
jeanjean8501 est déconnecté   Envoyer un message privé Réponse avec citation 00
Réponse Proposer ce sujet en actualité Cette discussion est résolue.
Outils de la discussion



Fuseau horaire GMT +2. Il est actuellement 00h47.


 
 
 
 
Partenaires

Hébergement Web