Précédent   Forum des professionnels en informatique > Bases de données > MySQL > SQL Procédural
SQL Procédural Forum d'entraide sur les triggers, les procédures stockées et les fonctions en 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 21/07/2006, 10h16   #1
Membre habitué
 
Avatar de johnkro
 
Étudiant
Inscription : juin 2006
Messages : 276
Détails du profil
Informations personnelles :
Âge : 27

Informations professionnelles :
Activité : Étudiant

Informations forums :
Inscription : juin 2006
Messages : 276
Points : 146
Points : 146
Envoyer un message via MSN à johnkro
Par défaut Ouverture de plusieurs connections?

Bonjour tout le monde,

Mon problème est assez simple : est-ce possible d'ouvrir plusieurs connections avec des bases MySQL?

En fait je dois me connecter a 3 BDD MySQL d'un serveur, mais entre différentes connections je dois me connecter à une BDD d'un autre serveur, mais c'est toujours en MySQL, mon code pour les connexions ressemblent à ça :

Code :
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
//Connexion à la base de données 1 du serveur 1
	$host="xxxx";
	$user="xxxx";
	$password="xxxx";
	$database="BDD1_serveur1";
	$connexion = mysql_connect($host,$user,$password) OR die ("connection impossible");
	$db = mysql_select_db($database,$connexion) OR die ("base incorrecte");
 
----------------
CODE PHP
----------------
 
//Connexion à la base de données 2 du serveur 1
	$database="BDD2_serveur1";
	$db = mysql_select_db($database,$connexion) OR die ("base incorrecte"); 
 
----------------
CODE PHP
----------------
 
JE DOIS FERMER MA CONNECTION ICI JE PENSE???
mysql_close();
 
//Connexion à la base de données 1 du serveur 2
	$host="xxxx";
	$user="xxxx";
	$password="xxxx";
	$database="BDD1_serveur2";
	$connexion = mysql_connect($host,$user,$password) OR die ("connection impossible");
	$db = mysql_select_db($database,$connexion) OR die ("base incorrecte");
 
----------------
CODE PHP
----------------
 
JE DOIS FERMER MA CONNECTION ICI JE PENSE???
mysql_close();
 
//Connexion à la base de données 3 du serveur 1
	$database="BDD3_serveur1";
	$db = mysql_select_db($database,$connexion) OR die ("base incorrecte"); 
 
----------------
CODE PHP
----------------
mysql_close();
Ce code est bon? car j'ai une erreur, mais je ne sais pas si c'est du à une erreur de connection ou une autre erreur, car je ne suis pas sur du nom des colonnes. Enfin si je sais que le principe de mes connexions est bon je serai que l'erreur vient d'autre part.

Merci d'avance
__________________
L'eau est un liquide si corrosif, qu'une seule goutte suffit pour troubler le pastis.
johnkro est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 21/07/2006, 10h27   #2
En attente de confirmation mail
 
Inscription : juin 2002
Messages : 6 164
Détails du profil
Informations forums :
Inscription : juin 2002
Messages : 6 164
Points : 6 404
Points : 6 404
Code :
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
 
// Première connexion
$conn1 = mysq_connect('host1', 'user1', 'password1');
mysql_select_db('db1', $conn1);
 
// Deuxième connexion
$conn2 = mysq_connect('host2', 'user2', 'password2');
mysql_select_db('db2', $conn2);
 
// Requête (première connexion)
$query = mysql_query('SHOW TABLES;', $conn1);
while ($array = mysql_fetch_array($query)) {
    echo $array[0] . '<br/>';
}
// Requête (deuxième connexion)
$query = mysql_query('SHOW TABLES;', $conn2);
while ($array = mysql_fetch_array($query)) {
    echo $array[0] . '<br/>';
}
 
// Fermeture des connexions
mysql_close($conn1);
mysql_close($conn2);
Vous devriez lire la documentation des fonctions au sujet des fonctions MySQL(i). Sachez toutefois, que vous n'êtes pas obligés d'utiliser deux connexions différentes s'il s'agit uniquement de bases différentes (c'est à dire même hôte/password/login) car dans ce cas mysql_select_db fixe en quelque sorte la base de données par défaut et vous pourriez très bien faire des requêtes sur une autre base (exemple : SELECT * FROM base_de_donnee2.nom_table).


Julp.
julp est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 21/07/2006, 10h29   #3
Rédacteur
 
Avatar de Swoög
 
Inscription : janvier 2003
Messages : 6 053
Détails du profil
Informations personnelles :
Âge : 24

Informations forums :
Inscription : janvier 2003
Messages : 6 053
Points : 7 144
Points : 7 144
Envoyer un message via MSN à Swoög Envoyer un message via Skype™ à Swoög
le principe a l'air bon, cependant, puisque tu utilises plusieurs connections, je te conseillerais de bien séparées celles-ci, nottament toujours utilisé l'argument le dernier argument précisant la connection, utilisé des variables séparées pour chaque connection etc...

Je rajoute à la remarque de julp que tu peux tout à fait utiliser mysql_select_db plusieurs fois pour changer de base de données
__________________
Rédacteur "éclectique" (XML, IRC, Web...)
Les Règles du Forum - Mon Site Web sur DVP.com (Développement Web, PHP, (X)HTML/CSS, SQL, XML, IRC)
je ne répondrai à aucune question technique via MP, MSN ou Skype : les Forums sont là pour ça !!! Merci de me demander avant de m'ajouter à vos contacts sinon je bloque !
pensez à la balise [code] (bouton #) et au tag (en bas)
Swoög est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 21/07/2006, 10h43   #4
Membre habitué
 
Avatar de johnkro
 
Étudiant
Inscription : juin 2006
Messages : 276
Détails du profil
Informations personnelles :
Âge : 27

Informations professionnelles :
Activité : Étudiant

Informations forums :
Inscription : juin 2006
Messages : 276
Points : 146
Points : 146
Envoyer un message via MSN à johnkro
Ok ok merci. Je vais légérement modifier mon code pour le rendre plus "propre". Mon probkème ne devait pas venir de là, je vais cogiter.

Merci
__________________
L'eau est un liquide si corrosif, qu'une seule goutte suffit pour troubler le pastis.
johnkro 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 11h24.


 
 
 
 
Partenaires

Hébergement Web