SQL

Problème de connexion à la BDD !

Résolu

Bonjour,

Je rencontre un pb avec le tuto sur la connexion à la base de données.

J'ai bien tout suivi et compris mais quand je travaille en local ça marche bien et j'arrive à faire les inscriptions dans ma base de données, et, quand je le mets en ligne avec Filezilla et bien ça ne marche plus.

La page est blanche et me dit :"Erreur : Impossible de se connecter à la BDD !"

J'ai pourtant bien changé mon host car mon serveur est chez alwaysdata.net donc normalement mon host serait: mysql-name.alwaysdata.net (par exemple).

Et bien...ça ne marche pas.

Pourriez-vous m'expliquer est m'aider SVP.

Merci beaucoup😊


<?php// Déclaration d'une nouvelle classeclass connexionDB {
    private $host    = 'mysql-name.alwaysdata.net';   // nom de l'hostprivate $name    = 'catalogue';     // nom de la base de donnéeprivate $user    = 'name';        // utilisateurprivate $pass    = 'mdp';        // mot de passe//private $pass    = '';          // Ne rien mettre si on est sous windowsprivate $connexion;


    function __construct($host = null, $name = null, $user = null, $pass = null){
      if($host != null){
        $this->host = $host;           
        $this->name = $name;           
        $this->user = $user;          
        $this->pass = $pass;
      }
      try{
        $this->connexion = new PDO('mysql:host=' . $this->host . ';dbname=' . $this->name,
          $this->user, $this->pass, array(PDO::MYSQL_ATTR_INIT_COMMAND =>'SET NAMES UTF8', 
          PDO::ATTR_ERRMODE => PDO::ERRMODE_WARNING));
      }catch (PDOException $e){
        echo 'Erreur : Impossible de se connecter  à la BDD !';
        die();
      }
    }


    public function query($sql, $data = array()){
      $req = $this->connexion->prepare($sql);
      $req->execute($data);
      return $req;
    }


    public function insert($sql, $data = array()){
      $req = $this->connexion->prepare($sql);
      $req->execute($data);
    }
  }


  // Faire une connexion à la fonction
  $DB = new connexionDB();
?>


3589 vues
05 avril 2020 à 22:45 (Édité)
Cette pub permet au site de vivre ...

19 commentaires

@Clouder!

Problème résoluuuuu!

MERCI d'avoir pris du time et de m'avoir guidé.😊

Bravo!👏

Belle journée🌞


@Marjorie,


C'est fait !

Je masque votre adresse mail.

@Clouder,

Peux-tu m'envoyer sur ma boîte email: *****@***.***

ta boîte email perso? Je t'envoie ainsi des captures d'écrans et s'il le faut mes fichiers, comme ça tu pourras vérifier.

Merci à toi👍

@Marjorie,


Pour le nom de ta base de données tu as bien pris le nom de la :

  • administration alwaysdata
  • dans la colonne de gauche : base de données.
  • mysql
  • et quelque chose du genre : 'catalogue_base' ?


Si c'est ça il faut prendre catalogue_base


Je ne connais pas la console d'administration de alwaysdata donc je me suis basé sur OVH

@Clouder,

J'ai fais comme ça mais le pb subsiste 😓

J'ai rajouté un espace. C'est bien comme ça?

Dis-moi.


new PDO('mysql:host=' . $this->host . ' ;dbname='  . $this->name,

@Marjorie,


Peux-tu essayer en ajouter un espace à cette ligne la entre le $this->host . ' ;dbname=' :


$this->connexion = new PDO('mysql:host=' . $this->host . ' ;dbname=' . $this->name, 
  $this->user, $this->pass, array(PDO::MYSQL_ATTR_INIT_COMMAND =>'SET NAMES UTF8', 
  PDO::ATTR_ERRMODE => PDO::ERRMODE_WARNING));


ou tu ajoutes un espace ici :


<?php
  $host = 'mysql-name.alwaysdata.net ';

Merci @Clouder,

J'ai re-enlevé le / sur le chemin et j'ai remis include('db/connexionDB.php');

Et le problème d'hier soir revient, regarde ici:https://margotte.alwaysdata.net/Catalogue/

Impossible de me connecter à la BDD alors que j'ai bien tout mis au niveau du host de Alwaysdata, le de la BDD PHPmyAdmin, mon identifiant et mon mot de passe PHPmyAdmin.

Je ne comprends pas...

Si quelqu'un peut éclairer ce pb, MERCI d'avance🙏

@Marjorie,


Sur ta page : https://margotte.alwaysdata.net/Catalogue/


Ton erreur est : Warning: include(/db/connexionDB.php): failed to open stream: No such file or directory in /home/margotte/www/Catalogue/index.php on line 3


Ce qui indique qu'il ne peut pas ouvrir le fichier connexionDB.php


Je suppose que dans Filezilla tu dois avoir une architecture comme cela :

  • www
  • db
  • connexionDB.php
  • index.php
  • catalogue.php
  • etc.


Si c'est le cas dans ton fichier catalogue.php du dois avoir ça :


<?phpinclude('db/connexionDB.php');


Dans ton erreur on voit qu'il y a un '/' devant db/connexionDB.php

@Jerem971,

Sympa de m'aider à y voir plus clair😊

Alors, j'ai fais avec la console : pas grand chose.

Par contre, j'inclue ma connexion à la BDD dans mes pages index.html, inscription.php etc. (voir ci-dessous).

J'ai fais attention à l'emplacement de mes fichiers.

Alors, je me suis dit que c'était au niveau du chemin le bug.

J'ai donc écris ceci: include('/db/connexionDB.php); [j'ai rajouté un slash devant le db]

Et...l'erreur n'apparaît plus. Je vois bien ma page mais avec un warning que tu peux voir ici: https://margotte.alwaysdata.net/Catalogue/

Ma question: pourquoi il y a un échec sur le chemin?🤔

Merci de pouvoir avancer.


<?php
    session_start(); // Permet de savoir s'il y a une session. C'est dire si un utilisateur c'est connecté.include('db/connexionDB.php'); // Fichier PHP contenant la connexion BDD.
?>

Re:


Tu as certaines erreurs présentes dans la console du navigateur... Je te propose de l'ouvrir en appuyant sur F12 (si tu es sur Windows, si tu es sur Mac, c'est ici 😉)

Vérifie l'emplacement de tes fichiers également dans chaque répertoire, sont-ils tous correctement bien appelé/placé ? 🤔

Cette pub permet au site de vivre ...
1
2