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 :

connexion PDO : base inconnue alors qu'elle existe


Sujet :

Langage PHP

  1. #1
    Expert confirmé
    Avatar de laurentSc
    Homme Profil pro
    Webmaster débutant perpétuel !
    Inscrit en
    Octobre 2006
    Messages
    10 470
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 60
    Localisation : France, Isère (Rhône Alpes)

    Informations professionnelles :
    Activité : Webmaster débutant perpétuel !
    Secteur : Industrie

    Informations forums :
    Inscription : Octobre 2006
    Messages : 10 470
    Points : 5 831
    Points
    5 831
    Billets dans le blog
    1
    Par défaut connexion PDO : base inconnue alors qu'elle existe
    Bonjour,
    suite à des problèmes, j'ai réinstallé plusieurs fois wampserver et pensant le problème résolu, je refais tourner le code PHP. Mais la connexion à la base ne marche plus. Voulant circonscrire le problème, j'ai écrit un fichier de test très simple : $dbh = new PDO('mysql:host=localhost;dbname=tickets', "root", "");
    PDOException: SQLSTATE[HY000] [1049] Base 'tickets' inconnue in C:\wamp644\www\ticket2\index2test.php on line 5
    alors que la bdd tickets existe...Peut-on m'aider ?

  2. #2
    Expert éminent sénior
    Avatar de ProgElecT
    Homme Profil pro
    Retraité
    Inscrit en
    Décembre 2004
    Messages
    6 112
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 68
    Localisation : France, Haute Savoie (Rhône Alpes)

    Informations professionnelles :
    Activité : Retraité
    Secteur : Communication - Médias

    Informations forums :
    Inscription : Décembre 2004
    Messages : 6 112
    Points : 16 646
    Points
    16 646
    Par défaut
    Salut

    Je suis étonné de la syntaxe que tu utilises au niveau du chemin mysql:host=localhost.

    ton code:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    $dbh = new PDO('mysql:host=localhost;dbname=tickets', "root", "");
    le mien:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    $pdo = new PDO('mysql:localhost;port=3306;dbname=bdtest', 'root', '', [
                        PDO::MYSQL_ATTR_INIT_COMMAND => 'SET NAMES utf8',
                        PDO::ATTR_ERRMODE            => PDO::ERRMODE_EXCEPTION,
                        PDO::ATTR_EMULATE_PREPARES   => false
                    ]);

  3. #3
    Expert confirmé
    Avatar de laurentSc
    Homme Profil pro
    Webmaster débutant perpétuel !
    Inscrit en
    Octobre 2006
    Messages
    10 470
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 60
    Localisation : France, Isère (Rhône Alpes)

    Informations professionnelles :
    Activité : Webmaster débutant perpétuel !
    Secteur : Industrie

    Informations forums :
    Inscription : Octobre 2006
    Messages : 10 470
    Points : 5 831
    Points
    5 831
    Billets dans le blog
    1
    Par défaut
    Merci de ton aide ; j'ai essayé ton code $dbh = new PDO('mysql:localhost;port=3306;dbname=tickets', 'root', ''); (sans les options PDO), mais j'ai le même message d'erreur...

  4. #4
    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 : 48
    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,

    est ce que le service MySQL tourne en tâche de fond ?

  5. #5
    Expert confirmé
    Avatar de laurentSc
    Homme Profil pro
    Webmaster débutant perpétuel !
    Inscrit en
    Octobre 2006
    Messages
    10 470
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 60
    Localisation : France, Isère (Rhône Alpes)

    Informations professionnelles :
    Activité : Webmaster débutant perpétuel !
    Secteur : Industrie

    Informations forums :
    Inscription : Octobre 2006
    Messages : 10 470
    Points : 5 831
    Points
    5 831
    Billets dans le blog
    1
    Par défaut
    Comment peut-on vérifier ça ?

    Et vérification faite, ma syntaxe de connexion qui surprenait progElecT est correcte...vu que c'est la tienne !

  6. #6
    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 : 48
    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
    Win+R
    services.msc puis Entrée
    et tu recherches MySQL

  7. #7
    Expert confirmé
    Avatar de laurentSc
    Homme Profil pro
    Webmaster débutant perpétuel !
    Inscrit en
    Octobre 2006
    Messages
    10 470
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 60
    Localisation : France, Isère (Rhône Alpes)

    Informations professionnelles :
    Activité : Webmaster débutant perpétuel !
    Secteur : Industrie

    Informations forums :
    Inscription : Octobre 2006
    Messages : 10 470
    Points : 5 831
    Points
    5 831
    Billets dans le blog
    1
    Par défaut
    Merci du truc. Non, il n'y est pas.

    En fait, la connexion aux tables de base, amenées à l'installation de phpMyAdmin fonctionne, mais à aucune table que je crée moi-même.

  8. #8
    Expert confirmé
    Avatar de laurentSc
    Homme Profil pro
    Webmaster débutant perpétuel !
    Inscrit en
    Octobre 2006
    Messages
    10 470
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 60
    Localisation : France, Isère (Rhône Alpes)

    Informations professionnelles :
    Activité : Webmaster débutant perpétuel !
    Secteur : Industrie

    Informations forums :
    Inscription : Octobre 2006
    Messages : 10 470
    Points : 5 831
    Points
    5 831
    Billets dans le blog
    1
    Par défaut
    Salut,
    je comprend qu'il aurait fallu que MySQL tourne en tâche de fond. Est-ce que je peux faire quelque chose pour que ce soit le cas ?

  9. #9
    Membre actif Avatar de Trehinos
    Homme Profil pro
    Analyste développeur PHP
    Inscrit en
    Novembre 2012
    Messages
    100
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 34
    Localisation : France, Hérault (Languedoc Roussillon)

    Informations professionnelles :
    Activité : Analyste développeur PHP
    Secteur : Distribution

    Informations forums :
    Inscription : Novembre 2012
    Messages : 100
    Points : 232
    Points
    232
    Par défaut
    Bonjour, oui il faut le démarrer dans WampServer =)

  10. #10
    Expert confirmé
    Avatar de laurentSc
    Homme Profil pro
    Webmaster débutant perpétuel !
    Inscrit en
    Octobre 2006
    Messages
    10 470
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 60
    Localisation : France, Isère (Rhône Alpes)

    Informations professionnelles :
    Activité : Webmaster débutant perpétuel !
    Secteur : Industrie

    Informations forums :
    Inscription : Octobre 2006
    Messages : 10 470
    Points : 5 831
    Points
    5 831
    Billets dans le blog
    1
    Par défaut
    Oui, mais comme dans l'onglet MySQL, y a pas de start ou assimilé, j'ai fait "redémarrer les services" et il est toujours pas là (d'ailleurs, c'est la première chose que j'avais faite après avoir constaté le problème).

  11. #11
    Membre actif Avatar de Trehinos
    Homme Profil pro
    Analyste développeur PHP
    Inscrit en
    Novembre 2012
    Messages
    100
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 34
    Localisation : France, Hérault (Languedoc Roussillon)

    Informations professionnelles :
    Activité : Analyste développeur PHP
    Secteur : Distribution

    Informations forums :
    Inscription : Novembre 2012
    Messages : 100
    Points : 232
    Points
    232
    Par défaut
    En effet, j'avais l'interface de XAMPP en tête (que j'utilise d'ailleurs car plus simple sur Windows pour cette raison là).

    Si le service ne démarre pas au démarrage de Wampserver, il est probable que le port par défaut (3306) soit déjà utilisé par un autre processus. Peut être changer le port d'écoute dans le fichier de configuration de mysql ?

    Vous dites que PHPMyAdmin fonctionne ? Quel port est noté sur la page d'accueil ? C'est ce port là que vous devez préciser dans le DSN de PDO.

  12. #12
    Expert confirmé
    Avatar de laurentSc
    Homme Profil pro
    Webmaster débutant perpétuel !
    Inscrit en
    Octobre 2006
    Messages
    10 470
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 60
    Localisation : France, Isère (Rhône Alpes)

    Informations professionnelles :
    Activité : Webmaster débutant perpétuel !
    Secteur : Industrie

    Informations forums :
    Inscription : Octobre 2006
    Messages : 10 470
    Points : 5 831
    Points
    5 831
    Billets dans le blog
    1
    Par défaut
    Il n'y a aucun port indiqué sur la page d'accueil. J'ai d'abord essayé MySQL/Utiliser un autre port que 3306 ; j'ai mis 3301 et l'ai aussi mis dans le DSN :
    Code php : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    $dbHost = "localhost";
    $dbUser = "root";
    $dbPassword = "";
    $dbName = "ticket2";
    $dsn = "mysql:host=" . $dbHost . ";dbname=" . $dbName;port=3301;
    $pdo = new PDO($dsn, $dbUser, $dbPassword,[PDO::ATTR_ERRMODE  => PDO::ERRMODE_EXCEPTION]);
    Mais même message d'erreur.
    Mon but étant uniquement d'avoir un serveur PHP en local, j'ai installé XAMPP. (XAMPP Control Panel V3.2.4). Il m'a créé un répertoire C:\XAMPP. J'ai compris que le code devait être mis dans le répertoire C:\XAMPP\htdocs et que si dans ce répertoire, je mets fichier.php, l'URL de ce fichier sera simplement http://localhost/fichier.php. OK. Pour lancer phpMyAdmin, Control Panel/MySQL/Admin. OK aussi. Il me détecte des erreurs PHP mais je crois que je tiens le bon bout. Dès que ça sera opérationnel, je mettrai en

  13. #13
    Expert confirmé
    Avatar de laurentSc
    Homme Profil pro
    Webmaster débutant perpétuel !
    Inscrit en
    Octobre 2006
    Messages
    10 470
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 60
    Localisation : France, Isère (Rhône Alpes)

    Informations professionnelles :
    Activité : Webmaster débutant perpétuel !
    Secteur : Industrie

    Informations forums :
    Inscription : Octobre 2006
    Messages : 10 470
    Points : 5 831
    Points
    5 831
    Billets dans le blog
    1
    Par défaut
    Ce soir, c'est bon. Donc XAMPP, adopté....

  14. #14
    Expert confirmé
    Avatar de laurentSc
    Homme Profil pro
    Webmaster débutant perpétuel !
    Inscrit en
    Octobre 2006
    Messages
    10 470
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 60
    Localisation : France, Isère (Rhône Alpes)

    Informations professionnelles :
    Activité : Webmaster débutant perpétuel !
    Secteur : Industrie

    Informations forums :
    Inscription : Octobre 2006
    Messages : 10 470
    Points : 5 831
    Points
    5 831
    Billets dans le blog
    1
    Par défaut
    Ca marche bien, néanmoins, vérification faite : MySQL ne tourne pas en tâche de fond. Pourquoi fallait-il que ce soit le cas pour Wampserver ?

  15. #15
    Membre actif Avatar de Trehinos
    Homme Profil pro
    Analyste développeur PHP
    Inscrit en
    Novembre 2012
    Messages
    100
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 34
    Localisation : France, Hérault (Languedoc Roussillon)

    Informations professionnelles :
    Activité : Analyste développeur PHP
    Secteur : Distribution

    Informations forums :
    Inscription : Novembre 2012
    Messages : 100
    Points : 232
    Points
    232
    Par défaut
    Pour moi non plus, il n'apparaît pas dans les services, mais dans la liste des processus ("Détails" du gestionnaire des tâches), il y a un mysqld.exe.

  16. #16
    Expert confirmé
    Avatar de laurentSc
    Homme Profil pro
    Webmaster débutant perpétuel !
    Inscrit en
    Octobre 2006
    Messages
    10 470
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 60
    Localisation : France, Isère (Rhône Alpes)

    Informations professionnelles :
    Activité : Webmaster débutant perpétuel !
    Secteur : Industrie

    Informations forums :
    Inscription : Octobre 2006
    Messages : 10 470
    Points : 5 831
    Points
    5 831
    Billets dans le blog
    1
    Par défaut
    En effet. Il fallait être très observateur...

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

Discussions similaires

  1. [HQL] "could not resolve property" alors qu'elle existe
    Par Ceubex dans le forum Hibernate
    Réponses: 7
    Dernier message: 29/01/2015, 11h24
  2. Undefined alors qu'elle existe ?
    Par Squallynou dans le forum Langage
    Réponses: 2
    Dernier message: 22/03/2011, 16h22
  3. Variable undefined alors qu'elle existe.
    Par defacta dans le forum Général JavaScript
    Réponses: 7
    Dernier message: 31/07/2009, 09h58
  4. [MySQL] Table inconnue 'type_matiere_premiere' dans where clause alors qu'elle existe
    Par roy-mustang dans le forum PHP & Base de données
    Réponses: 2
    Dernier message: 25/04/2009, 18h06
  5. Réponses: 2
    Dernier message: 25/06/2008, 10h58

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