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 :

Erreur lors de l'accès à la base par DAO


Sujet :

Langage PHP

  1. #1
    Membre régulier
    Profil pro
    Inscrit en
    Septembre 2003
    Messages
    115
    Détails du profil
    Informations personnelles :
    Âge : 41
    Localisation : Belgique

    Informations forums :
    Inscription : Septembre 2003
    Messages : 115
    Points : 77
    Points
    77
    Par défaut Erreur lors de l'accès à la base par DAO
    Bonjour à tous,

    voilà je suis entrain de recentraliser les appels de fonctions d'un site réalisé en php
    Ayant un coeur de JavaMan, j'aimerais utilisé le pattern DAO afin d'accéder à ma table et, de là, construire mes objets.

    voici l'erreur que j'obtiens:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
     
    Warning: mysql_connect(): Can't connect to local MySQL server through socket '/var/lib/mysql/mysql.sock' (2) in /home.2/exnach/www/core/BaseDao.php on line 6
     
    Warning: mysql_select_db(): Can't connect to local MySQL server through socket '/var/lib/mysql/mysql.sock' (2) in /home.2/exnach/www/core/BaseDao.php on line 7
     
    Warning: mysql_select_db(): A link to the server could not be established in /home.2/exnach/www/core/BaseDao.php on line 7
    voici comment j'organise mes fichiers:

    - test.php (qui sert à créer une instance du dao et à appeler les méthodes nécéssaires)

    -BaseDao.php (qui est une classe de base dont qui sert juste à effectuer un mysqlConnect() etc...)

    -LanDao.php (qui extend BaseDao et qui contient les méthodes de mon Dao proprement dit)


    voici le code de mes différents fichiers:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
     
    //test.php
    <?
    include_once('./LanDao.php');
     
    $dao = new LanDao;
    $dao->getLan(2);
    ?>
    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
     
    //LanDao.php
    <?
    include_once('BaseDao.php');
    class LanDao extends BaseDao {
     
    	function getLan($idLan){
    		$this->connectToMysql();
    	}
    	function getActiveLan(){
     
    	}
    	function getPlayers($lan){
     
    	}
    }
    ?>
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
     
    //BaseDao.php
    <?
    include('config.php');
    class BaseDao{
     
    	function connectToMysql(){
    		$connection = mysql_connect($server,$user,$password); //or die('connectToBD : connection error...');
    		mysql_select_db($database); //or die('connectToBD : impossible to reach datas...');
    	}
    	function closeFromMysql(){
    	}
    }
    ?>
    le fichier config.php est le fichier ou se trouve le password, l'utilisateur ainsi que le nom de la base et le serveur afin de pouvoir se connecter au serveur Mysql



    Voilà je comprend pas pourquoi le fait de passer par des classe empechent la connection

    si quelqu'un a une idée, je suis preneur


    Merci d'avance
    a+

    olivier

  2. #2
    Membre régulier
    Profil pro
    Inscrit en
    Septembre 2003
    Messages
    115
    Détails du profil
    Informations personnelles :
    Âge : 41
    Localisation : Belgique

    Informations forums :
    Inscription : Septembre 2003
    Messages : 115
    Points : 77
    Points
    77
    Par défaut
    personne n'a une petite idée?

  3. #3
    Membre habitué
    Inscrit en
    Janvier 2006
    Messages
    140
    Détails du profil
    Informations forums :
    Inscription : Janvier 2006
    Messages : 140
    Points : 151
    Points
    151
    Par défaut
    je ne sais même pas ce qu'est la "BaseDAO", tu as de la doc à ce sujet ?

  4. #4
    Membre régulier
    Profil pro
    Inscrit en
    Septembre 2003
    Messages
    115
    Détails du profil
    Informations personnelles :
    Âge : 41
    Localisation : Belgique

    Informations forums :
    Inscription : Septembre 2003
    Messages : 115
    Points : 77
    Points
    77
    Par défaut
    BaseDao c'est une classe que moi j'ai crée.

    ma classe BaseDao est juste une mise en évidence des fonctions qui sseront répétées tout le temps comme se connecter à la base, fermer la connexion etc...

    c'est tout

    à propos j'ai résolu mon problème
    mon include de config.php ds le fichier base dao n'arrive pas à voir les valeur definies dans le fichiers de config

    voici le fichier de config
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
     
    <?
    	$database = "test";
    	$user = "test";
    	$password = "test";
    	$server = "test";
    ?>
    J'ai volontairement modifier les valeur en test afin de ne pas montrer mon vrai username/passsword

    Si quelqu'un sait pourquoi je ne peux pas y avoir accès depuis ma classe

  5. #5
    Membre habitué
    Inscrit en
    Janvier 2006
    Messages
    140
    Détails du profil
    Informations forums :
    Inscription : Janvier 2006
    Messages : 140
    Points : 151
    Points
    151
    Par défaut
    A chaque fois que tu rentres dans un fonction de ta classe, tu oublies toutes les variables définies, mises à part les globales, sessions, constantes, etc.

    Vu que dans ce cas ce sont de simples variables, qui ne sont pas passées en paramètre, elles sont ignorée à l'intérieur de tes fonctions membres.

    Si tu les remplaces par des constantes, il n'y aura plus de problème

  6. #6
    Membre régulier
    Profil pro
    Inscrit en
    Septembre 2003
    Messages
    115
    Détails du profil
    Informations personnelles :
    Âge : 41
    Localisation : Belgique

    Informations forums :
    Inscription : Septembre 2003
    Messages : 115
    Points : 77
    Points
    77
    Par défaut
    Ah ok

    bah oui j'ai compris,
    et pour mettre en constantes

    il faut mettre global devant c'est ca?

  7. #7
    Membre habitué
    Inscrit en
    Janvier 2006
    Messages
    140
    Détails du profil
    Informations forums :
    Inscription : Janvier 2006
    Messages : 140
    Points : 151
    Points
    151
    Par défaut
    nonnon

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
     
    define ("DATABASE", "nomdetabase");
     
    echo "nom de la base :".DATABASE;

  8. #8
    Membre régulier
    Profil pro
    Inscrit en
    Septembre 2003
    Messages
    115
    Détails du profil
    Informations personnelles :
    Âge : 41
    Localisation : Belgique

    Informations forums :
    Inscription : Septembre 2003
    Messages : 115
    Points : 77
    Points
    77
    Par défaut
    ok ok merci c'est résolu maintenant

    et tagged

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. Erreur XDebug lors d'un accès en base
    Par dukoid dans le forum Doctrine2
    Réponses: 0
    Dernier message: 03/03/2013, 12h06
  2. Erreur lors du fractionnement d'une base
    Par Kayser Sosé dans le forum Access
    Réponses: 11
    Dernier message: 24/11/2006, 13h10
  3. Erreur lors de l'acces aux attributs
    Par userB dans le forum C++Builder
    Réponses: 1
    Dernier message: 14/09/2006, 12h37
  4. erreur lors d'une création de base
    Par LuckySoft dans le forum Oracle
    Réponses: 2
    Dernier message: 03/07/2006, 14h06
  5. [TestStand] Erreur lors d'un accès à une Base de données
    Par capblans dans le forum Autres langages
    Réponses: 1
    Dernier message: 20/07/2005, 10h29

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