Connexion à deux base de données

Manoman
Invité n'ayant pas de compte PHPfrance

02 mai 2005, 12:27

Bonjour

Je dois travailler sur deux bases de données sur des serveurs différents.

Dans deux fichiers distincts je déclare la connexion à ces bases

Dans un autre fichier, une fonction effectue un test

Suivant le resultat je redirige sur deux fonctions différentes

La premiere est connectée à une base de données
La deuxieme se connecte à cette meme base puis a une deuxieme

Lorsque je souhaite ensuite me reconnecter à la premiere base un message d'erreur apparait

Pouvez vous m'aider ???

Merci d'avance

Mammouth du PHP | 19672 Messages

02 mai 2005, 13:07

Deux questions :
-1- Comment te connectes-tu : utilises-tu une classe objet ?
-2- Quelle est la teneur du message d'erreur : et si une ligne de code est indiquée, peut-on voir cette ligne ? (sans les mots de passe s'il y en a bien sur)
Codez en pensant que celui qui maintiendra votre code est un psychopathe qui connait votre adresse :axe:

Invité
Invité n'ayant pas de compte PHPfrance

02 mai 2005, 14:14

Pour me connecter j'utilise deux fichiers construit sur ce modele
Je parviens à me connecter mais quand je veux me connecter à la base 1 apres m'etre connecté à la base 1 puis à la base 2 ce n'est plus possible

Voici le code de mon fichiers de connection

<?php
function gesterr_mysql_die($error = ""){
if (empty($error)){
$mysqlError = mysql_error(); //affect une variable avec l'erreur
if (!empty($mysqlError)){
echo "Réponse serveur SQL: ".$mysqlError;
}
}
else
echo "Réponse serveur SQL: ".$error;
echo "<br><a href=\"javascript:history.go(-1)\">BACK</a>";
exit;
return 1;
reprise($error);

}

function gesterr_connect_db(){
//parametre de connection serveur

//configuration
$host = "localhost";
$login = "root";
$base = "devis";
$password = "";

$db=mysql_connect($host,$login,$password) or gesterr_mysql_die();
mysql_select_db($base);

return $db;
}

?>

Le message d'erreur retourné est :

Fatal error: Cannot redeclare gesterr_mysql_die() (previously declared in c:\program files\easyphp1-7\www\devis\connexion\gesterr_db.inc.php:2) in c:\program files\easyphp1-7\www\devis\connexion\gesterr_db.inc.php on line 2

Mammouth du PHP | 19672 Messages

02 mai 2005, 14:23

Dans ton fichier gesterr_db.inc.php, tu dois avoir une ligne 2 qui doit ressembler à
include("ton_fichier_de_connexion.php");
Remplace le include par include_once(), ça devrait régler ton problème.

Signification : include_once() va vérifier si le fichier a déjà été inclu, si oui, il ne s'exécute pas, sinon, il va chercher le fichier, même chose pour require()/require_once()
Codez en pensant que celui qui maintiendra votre code est un psychopathe qui connait votre adresse :axe:

Invité
Invité n'ayant pas de compte PHPfrance

02 mai 2005, 14:35

En fait le fichier qui s'appelle gesterr_db.inc.php est le fichier dont je me sert pour me connecter.

J'ai mis ce que tu m'as conseillé ("include_once")

J'ai l'impression que ca m'a oté une partie du probleme

Je m'explique:
Je n'ai plus d'erreur, mais c comme si php ne lisait plus ce qui lui pose probleme

Mammouth du PHP | 19672 Messages

02 mai 2005, 14:39

mais encore..... ? si toi tu as du mal à voir en étant sur place, imagine pour moi qui n'ai aucune idée du processus en cours... :-k
Codez en pensant que celui qui maintiendra votre code est un psychopathe qui connait votre adresse :axe:

Invité
Invité n'ayant pas de compte PHPfrance

02 mai 2005, 14:45

Desolé je suis rarement clair

Je crois que tu m'as mis sur la voie

Je renvoye un message dans 5 minutes pour confirmer

Invité
Invité n'ayant pas de compte PHPfrance

02 mai 2005, 14:49

Merci enormément et je pese mes mots, je bloquais sur ce petit soucis croyant que c en générant mon pdf que ca ne passait pas

Ce qui n'allait pas en fait est qu'il fallait que je relance ma page, la recharger ne suffisait pas

Encore merci

Mano