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

PHP & Base de données Discussion :

Class et class extend avec deux serveurs


Sujet :

PHP & Base de données

  1. #1
    Membre du Club
    Profil pro
    Inscrit en
    Juillet 2004
    Messages
    89
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juillet 2004
    Messages : 89
    Points : 47
    Points
    47
    Par défaut Class et class extend avec deux serveurs
    Bonjour,

    J'ai la class suivante :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    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
    47
    48
    49
    50
    51
    52
    53
    54
    55
    56
    class DBPdo {
     
    	//! Database Host
    	var $DB_HOST	= ""; 
    	//! Default Database
    	var $DB_NAME	= "";
    	//! Database User
    	var $DB_USER 	= "";
    	//! Database Password 
    	var $DB_PASS	= "";
    	//! Database Handler
    	var $dbh;
    	//! Database Error
    	var $error 		= 0;
     
    	var $connected = false;
     
    	/**
    	* Construction / Connexion à la base PDO
    	*
    	* @return Nothing
    	*/
    	function __construct(){
    		$this->connect();
    	}
     
    	/**
    	* Connexion à la base PDO
    	*
    	* @return Nothing
    	*/
    	function connect(){
    		$this->connected=false;
    		try {
    			$this->dbh = new PDO('mysql:host=' . $this->DB_HOST . ';dbname=' . $this->DB_NAME, $this->DB_USER, Utils::strtr_cryptage( 'decode', Utils::setSecurity( 'decode', SECU_KEYPASS, $this->DB_PASS) ) ) or $this->getMessage();
    			if( $this->dbh ){ // connexion ok
    				$stmt = $this->dbh->query("SELECT COUNT(*) FROM INFORMATION_SCHEMA.SCHEMATA WHERE SCHEMA_NAME = '" . $this->DB_NAME . "'");
    				if( (bool) $stmt->fetchColumn() ){
    					$this->connected=true;
    				}				
    			}
    			if( !$this->connected ){
    				$this->connected=false;
    				Display::displayPDOError( 'DBAccess', LANG_BDD_SQL_ERR );
    				$this->dbh = null;
    				die();
    			}
    		}
    		catch(PDOException $err) {
    			$this->connected=false;
    			Display::displayPDOError( $err->getCode(), $err->getMessage() );
    			$this->dbh = null;
    			die();
    		}
    	}
    }
    et la class extends suivante :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    class DB_config extends DBPdo { 
    	// Variables communes
    	var $DB_HOST = 'localhost';
    	var $DB_NAME = 'mabdd';
    	// Identifiant et mot de passe connexion DB lcoal
    	var $DB_USER = 'userlocal';
    	var $DB_PASS = 'passlocal';
    	// Identifiant et mot de passe connexion DB online
    	// var $DB_USER = 'userweb';
    	// var $DB_PASS = 'passweb';
     
    }
    J'aimerais dans cette class extends mettre quelque chose du style :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
     
    if( $_SERVER['SERVER_NAME']=='serveur1' ){
    	var $DB_USER = 'userlocal';
    	var $DB_PASS = 'passlocal';
    }
    elseif( $_SERVER['SERVER_NAME']=='serveur2' ){
    	var $DB_USER = 'userweb';
    	var $DB_PASS = 'passweb';
    }
    J'ai tenté plusieurs chose mais sans succès, voilà pourquoi j'en appelle à vous.

    Merci pour vos retours.

    Amicalement
    Thierry

  2. #2
    Expert éminent sénior
    Avatar de rawsrc
    Homme Profil pro
    Dev indep
    Inscrit en
    Mars 2004
    Messages
    6 142
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 47
    Localisation : France, Bouches du Rhône (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Dev indep

    Informations forums :
    Inscription : Mars 2004
    Messages : 6 142
    Points : 16 545
    Points
    16 545
    Billets dans le blog
    12
    Par défaut
    salut,

    Le code de ta classe est très vieux...
    Il faudrait d'abord que tu le dépoussières avant de la remettre en production.
    Actuellement à chaque instance de ta classe, tu ouvres une nouvelle connexion ! Ce n'est pas très optimal. Il est préférable d'utiliser toujours la même connexion.
    Fais une recherche sur le forum avec le terme PDO :
    PDO Une Soupe et au lit
    PDO++
    etc.

Discussions similaires

  1. Réponses: 0
    Dernier message: 14/08/2013, 16h28
  2. Réponses: 0
    Dernier message: 22/02/2011, 11h37
  3. Réponses: 4
    Dernier message: 25/03/2010, 18h11
  4. Redondance avec deux serveurs ?
    Par Arrau dans le forum Installation
    Réponses: 8
    Dernier message: 01/09/2009, 15h16
  5. Redondance avec deux serveurs ?
    Par Arrau dans le forum SharePoint
    Réponses: 8
    Dernier message: 01/09/2009, 15h16

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