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 :

SQLSTATE[42000] [1044] Access denied


Sujet :

PHP & Base de données

  1. #1
    Membre confirmé Avatar de gtraxx
    Homme Profil pro
    Développeur Web
    Inscrit en
    Mai 2006
    Messages
    1 043
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 42
    Localisation : Belgique

    Informations professionnelles :
    Activité : Développeur Web
    Secteur : High Tech - Multimédia et Internet

    Informations forums :
    Inscription : Mai 2006
    Messages : 1 043
    Points : 570
    Points
    570
    Par défaut SQLSTATE[42000] [1044] Access denied
    Bonjour a tous, afin de tester un peux j'ai voulu me faire une petite class pour stocker mes infos de connexion mysql (user, mdp, database)
    Au début je stockais simplement dans 3 variables les données de connexion ce qui fonctionne parfaitement, exemple :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    global $connStr,$user,$pass;
    			$dbh = new PDO($connStr, $user, $pass);
    la suite .....
    mais pour me casser un peux la tête j'ai voulu remplacer les variables par une petite class.
    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
    class ConnectDb{
    	protected   $connStr;
    	protected   $user;
    	protected   $pass;
    	function __construct(){
     
    		$this->connStr = 'mysql:host=localhost;dbname=db_test';
    		$this->user = 'root';
    		$this->pass = 'root';
    	}
     	function getStringData(){
     
    		$data = $this->connStr.', '.$this->user.', '.$this->pass;
    		return $data;
    	}
    }
    Je l'appele alors comme ceci :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    $dbh = new PDO($this->sgbd->getStringData());
    Seulement j'ai un big message d'erreur :
    Fatal error: Uncaught exception 'PDOException' with message 'SQLSTATE[42000] [1044] Access denied for user ''@'localhost' to database 'db_test, root, root'' in /Applications/MAMP/htdocs/test/_scriptroot/backend/users/db/index.php:61 Stack trace: #0 /Applications/MAMP/htdocs/test/_scriptroot/backend/users/db/index.php(61): PDO->__construct('mysql:host=loca...')
    Au petit déjeuner, je prend du PHP et au souper du jQuery.
    AFUP 2009 : Bien optimiser son code pour le référencement
    Mon projet open source de librairie PHP 5: magix cjquery

  2. #2
    Membre régulier
    Profil pro
    Inscrit en
    Mars 2006
    Messages
    92
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mars 2006
    Messages : 92
    Points : 102
    Points
    102
    Par défaut
    ta classe te retourne une chaine, tu passes qu'un seul argument à ta fonction pdo ...

  3. #3
    Membre confirmé Avatar de gtraxx
    Homme Profil pro
    Développeur Web
    Inscrit en
    Mai 2006
    Messages
    1 043
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 42
    Localisation : Belgique

    Informations professionnelles :
    Activité : Développeur Web
    Secteur : High Tech - Multimédia et Internet

    Informations forums :
    Inscription : Mai 2006
    Messages : 1 043
    Points : 570
    Points
    570
    Par défaut
    Vous voulez dire que je devrais faire comme ceci :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    function getStringData(){
     
    		$data = $this->connStr;
                    $data.= ', '.$this->user;
                    $data.=', '.$this->pass;
    	return $data;
    	}
    je n'ai besoin que de cette chaine :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
     'mysql:host=localhost;dbname=db_test','root','root';
    c'est vrai qu'ici je place encore une fois les données dans des variables directement mais je souhaite par la suite les chargé depuis un fichier .conf ou autre chose
    Sinon ma class ne servirai a rien

    Une idée pour réaliser cela au mieux ?
    Doit je simplement passer 3 parametres dans la fonction qui sont un chargement des données stocké dans un fichier
    je m'explique comme une poire mdrrr
    Au petit déjeuner, je prend du PHP et au souper du jQuery.
    AFUP 2009 : Bien optimiser son code pour le référencement
    Mon projet open source de librairie PHP 5: magix cjquery

  4. #4
    Membre régulier
    Profil pro
    Inscrit en
    Mars 2006
    Messages
    92
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mars 2006
    Messages : 92
    Points : 102
    Points
    102
    Par défaut
    tu fais 3 méthodes pour recuperer le login et pass et host et tu passes chacunes tes methodes en parametre de la fonction PDO

  5. #5
    Membre confirmé Avatar de gtraxx
    Homme Profil pro
    Développeur Web
    Inscrit en
    Mai 2006
    Messages
    1 043
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 42
    Localisation : Belgique

    Informations professionnelles :
    Activité : Développeur Web
    Secteur : High Tech - Multimédia et Internet

    Informations forums :
    Inscription : Mai 2006
    Messages : 1 043
    Points : 570
    Points
    570
    Par défaut
    je peux faire comme ceci alors :
    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
    <?php
    abstract class ConnectDb{
    	protected   $connStr;
    	protected   $user;
    	protected   $pass;
    	function __construct(){
     
    		$this->connStr = 'mysql:host=localhost;dbname=db_test';
    		$this->user = 'root';
    		$this->pass = 'root';
    	}
     	function getConnStrData(){
     
    		return $this->connStr;
     
    	}
    	function getuserData(){
     
    		return $this->user;
     
    	}
    	function getpassData(){
     
    		return $this->pass;
    	}
    }
    class CallConnectDb extends ConnectDb {
     
    	function getconnStr(){
    		return  $this->connStr;
    	}
     
    	function getuser(){
    		return $this->user;
    	}
     
    	function getpass(){
    		return $this->pass;
    	}
    }
    ?>
    Mais comment ouvrir un fichier txt et récupérer une ligne distinct ??
    Genre :
    l
    igne 1 ) mysql:host=localhost;dbname=db_test
    ligne 2 ) root
    ligne 3) root
    afin de les placer correctement dans chaque variable ?
    Au petit déjeuner, je prend du PHP et au souper du jQuery.
    AFUP 2009 : Bien optimiser son code pour le référencement
    Mon projet open source de librairie PHP 5: magix cjquery

Discussions similaires

  1. [phpMyAdmin] Message d'erreur #1044 access denied for user
    Par kinezana dans le forum EDI, CMS, Outils, Scripts et API
    Réponses: 3
    Dernier message: 15/11/2012, 11h36
  2. [1.x] sqlstate[28000] [1045] access denied
    Par daydream123 dans le forum Symfony
    Réponses: 3
    Dernier message: 02/10/2011, 11h07
  3. [PDO] Erreur: SQLSTATE [28000] [1045] Access denied
    Par bender86 dans le forum PHP & Base de données
    Réponses: 7
    Dernier message: 07/12/2010, 08h20
  4. Réponses: 13
    Dernier message: 25/12/2009, 16h58
  5. Réponses: 1
    Dernier message: 16/11/2009, 15h48

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