IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Langage PHP Discussion :

Site multi-base


Sujet :

Langage PHP

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre confirmé
    Homme Profil pro
    Développeur décisionnel
    Inscrit en
    Février 2009
    Messages
    140
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Développeur décisionnel
    Secteur : Bâtiment

    Informations forums :
    Inscription : Février 2009
    Messages : 140
    Par défaut Site multi-base
    Bonjour tout le monde,

    Je développe un site PHP accedant à 2 BDD différentes.

    Cepandant, pour executer mes requetes, je n'utilise qu'une seul fonction "execute"

    Connexion aux bases :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    	$ConnAd = mysql_connect("localhost", "", "")
    	or die("Impossible de se connecter");
    	mysql_select_db("demo_admin") or die("Impossible de choisir la base");
     
    	$Conn = odbc_connect("WEB2OFFRES","","") or die("echec connexion");
    Fonction d'execution de requete :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    function execute($ressource , $requete){
     
    	if ($ressource == "Resource id #6"){	// Connexion aux offres
    		$result = odbc_exec($ressource , $requete) or die("<p>".$requete." => : ".odbc_errormsg()."</p>");
    	}
     
    	elseif ($ressource == "Resource id #5"){	// Connexion à l'admin
    		$result = mysql_query($requete , $ressource) or die("<p>".$requete." => : ".mysql_error."</p>");
    	}
     
    	return $result;
    }
    J'appelle ma fonction ainsi :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    $result= execute($ConnAd, $requete);
    "Resource id #5" est ce qui s'affiche lors d'un echo $ConnAd;

    Le probleme est que apparament, ressource ne vaut jamais ""Resource id #5" ou ""Resource id #6" ...
    Du coup, il ne se connecte jamais à la base

    Suis-je obliger d'avoir 2 fonctions d'execution différentes ou bien il y à un moyen simple de n'utiliser que la fonction "execute" ?

    Merci d'avance pour vos réponses

  2. #2
    Membre expérimenté
    Avatar de Tesing
    Profil pro
    Étudiant
    Inscrit en
    Septembre 2009
    Messages
    272
    Détails du profil
    Informations personnelles :
    Âge : 42
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Étudiant
    Secteur : Enseignement

    Informations forums :
    Inscription : Septembre 2009
    Messages : 272
    Par défaut
    Salut,

    la solution : rajoute une conversion explicite vers le type string sur tes ressources de connexion aux BDD.

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    if((string) $ressource == "Resource id #6")
    Si ca marche et que tu veux des explications, je peux t'en donner.

  3. #3
    Membre confirmé
    Homme Profil pro
    Développeur décisionnel
    Inscrit en
    Février 2009
    Messages
    140
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Développeur décisionnel
    Secteur : Bâtiment

    Informations forums :
    Inscription : Février 2009
    Messages : 140
    Par défaut
    Bien joué ca semble fonctionner

    Edit : Effectivement je veux bien des détails sur le pkoi du comment

  4. #4
    Membre expérimenté
    Avatar de Tesing
    Profil pro
    Étudiant
    Inscrit en
    Septembre 2009
    Messages
    272
    Détails du profil
    Informations personnelles :
    Âge : 42
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Étudiant
    Secteur : Enseignement

    Informations forums :
    Inscription : Septembre 2009
    Messages : 272
    Par défaut
    Lorsqu'un opérateur fait intervenir deux opérandes de types différents, il y a conversion de type implicite d'au moins l'un des opérandes et parfois des deux.

    Dans le cas ci dessus, tu comparais une ressource a une chaine de caractères, et au cours de cette comparaison les deux sont convertis en flottants ...
    La ressource vaut son numéro et la chaine vaut 0. D'où le problème que tu rencontrais.

    Tu peux le verifier par exemple en remplacant "Resource id #5" par "5" et en retirant la conversion explicite que tu as ajoutee

  5. #5
    Membre confirmé
    Homme Profil pro
    Développeur décisionnel
    Inscrit en
    Février 2009
    Messages
    140
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Développeur décisionnel
    Secteur : Bâtiment

    Informations forums :
    Inscription : Février 2009
    Messages : 140
    Par défaut
    OK dak' c'est vrai que c'est l'une des spécificité de PHP ce non-typage des variables

  6. #6
    Membre expérimenté
    Avatar de Tesing
    Profil pro
    Étudiant
    Inscrit en
    Septembre 2009
    Messages
    272
    Détails du profil
    Informations personnelles :
    Âge : 42
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Étudiant
    Secteur : Enseignement

    Informations forums :
    Inscription : Septembre 2009
    Messages : 272
    Par défaut
    pour finir, es tu sur que les identifiants de ressource ne sont pas susceptibles de changer ?

  7. #7
    Membre confirmé
    Homme Profil pro
    Développeur décisionnel
    Inscrit en
    Février 2009
    Messages
    140
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Développeur décisionnel
    Secteur : Bâtiment

    Informations forums :
    Inscription : Février 2009
    Messages : 140
    Par défaut
    Je n'en sais malheureusement rien.

    Je pense qu'ils ne changeront jamais pour ce site, mais pour le suivant (qui sera une quasi-copie de celui-la) ils changeront surement donc il faudra que je modifie le fichier de connexion ...

Discussions similaires

  1. Requêtes multi-base
    Par nicolchr dans le forum PostgreSQL
    Réponses: 9
    Dernier message: 12/11/2014, 11h50
  2. [eZ Publish] Créer un site Multi-base
    Par azrael62 dans le forum EDI, CMS, Outils, Scripts et API
    Réponses: 5
    Dernier message: 05/09/2013, 09h36
  3. [MySQL] Site Backoffice avec multi client et multi base SQL
    Par lmabire dans le forum PHP & Base de données
    Réponses: 1
    Dernier message: 05/01/2012, 09h06
  4. Structuration site multi-bases
    Par Xenon03 dans le forum Langage
    Réponses: 2
    Dernier message: 30/09/2009, 14h17
  5. Creation de table multi base
    Par baboune dans le forum PostgreSQL
    Réponses: 1
    Dernier message: 20/02/2004, 09h23

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo