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();
?>


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

19 commentaires

@Jerem971,

Voilà ce que fait la page avec la connexion à la BDD : https://margotte.alwaysdata.net/Catalogue/

Sans la BDD la page contact (envoi mail PHP): https://margotte.alwaysdata.net/Catalogue/contact.php


En local avec localhost pas de soucis.

En ligne après avoir fait le transfère du dossier avec filezilla: problème!

Je ne comprends pas.🤨

Si quelqu'un peut avoir une idea ... MERCI.

@Jerem971...OUi, j'arrive à me connecter à Alwaysdata.net avec mon identifiant et mot de passe pour ce site d'hébergement.


Au niveau de la formation, j'ai suivi le tuto en ligne (très bien fait) et j'ai mis dans mon fichier connexionDB.php ce code (en mettant à la place de localhost mon hôte chez Alwaysdata.net, dans mon name le nom de ma BDD chez PHPmyAdmin, dans mon user le nom de mon compte PHPmyAdmin et dans mon mot de passe le mot de passe de mon PHPmyAdmin [connxion normale à une BDD]. Ce qu'il se passe en ligne c'est ce message d'erreur : "Erreur : Impossible de se connecter à la BDD !"


Merci du soutien.😊


<?php
  // Déclaration d'une nouvelle classe
  class connexionDB {
    private $host    = 'localhost';   // nom de l'host
    private $name    = 'monsite';     // nom de la base de donnée
    private $user    = 'root';        // utilisateur
    private $pass    = 'root';        // mot de passe
    //private $pass    = '';          // Ne rien mettre si on est sous windows
    private $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 à votre fonction
  $DB = new connexionDB();
?>

Re:


Effectivement, si toutes tes données sont correctes, je ne vois pas pourquoi la connexion serait impossible... 🧐

Arrives-tu à te connecter sur cette page ? 🤔

As-tu bien suivis cet article de formation ? 🤔

Merci@Jerem971,

Oui, pas de soucis pour le changement de titre du topic.

Oui, je connais la page que tu m'as envoyé sur Alwaysdata.net.

Pour clarifier, mon Hôte MySQL est : mysql-margotte.alwaysdata.net (chez Alwaysdata.net) ça c'est pour la BDD.

Je t'envoie une page web que j'ai réalisé et tu verras mon hôte dans le navigateur: https://margotte.alwaysdata.net/portfolio2/

Dans le code je mets bien Private $host= ' mysql-margotte.alwaysdata.net'

$name= 'catalogue' (nom de ma bdd dans phpmyadmin)

$user= 'mon identifiant' (de mon phpmyadmin)

$pass= 'mon mot de passe' (de mon phpmyadmin)


Il y a quelque chose qui m'échappe.

ça marche en local quand mon host est localhost mais en ligne tout fout le camp!

Merci pour le soutien.🙏



Hello @Marjorie,


Lors de la rédaction du titre du topic, il faut éviter tout type d'éléments comme "URGENT, BESOIN D'AIDE...etc." (cf règles du forum). J'ai réédité ton titre 😉

Pour que la connexion à ta base de données soit effective, tu dois vérifier à la fois, l'identifiant, le nom de la base de données, l'hôte et le mot de passe 😉

Par ailleurs, il faudra que tu changes d'hébergeur et passer chez World-Heberg, le support est plus réactif que 000webhost et alwaysdata et autres...

Depuis cette page, ils indiquent : "Chaque fois que vous rencontrez la forme *-[compte].alwaysdata.net, vous devez remplacer [compte] par le nom de votre compte, choisi lors de sa création."

...Ma BDD 'catalogue' est créée dans PHPmyAdmin.

Mon hébergeur est Alwaysdata.net (c'est celui que j'utilise à la formation pour mes sites).

Je ne sais pas si tu connais. Il est gratuit.

faudrait-il que je fasse un essai avec OVH?

Comment ça fonctionnerait au niveau de mon Host, de mon username et de mon mot de passe?

J'aimerais résoudre ce problème car c'est dommage tout le reste du site est pas mal.


@Marjorie,


Je suppose que ta base de données a été créé sur ton hébergeur ?


Par précaution, as-tu bien tout revérifier ?


Quel est ton hébergeur ?

Coucou@Clouder,

MERCI beaucoup pour ta rapidité (j'apprécie).👍

Je suis sur PHPmyAdmin et j'utilise bien mon identifiant et mot de passe PHPmyAdmin pour me connecter à ma BDD.

Ils correspondent à : private $user  = 'name';     private $pass  = 'mdp'; dans la requête que j'ai suivi dans le tuto.

Mon Host correspond normalement à celui qui se trouve dans mon alwaysdata.net : ex. 'mysql-marjorie.alwaysdata.net'

Là je cale et j'ai vraiment besoin de soutien!

Je passe des exams dans 1 mois et j'ai besoin d’avoir une bonne connexion à ma BDD comme exemple.

Pourrais-tu m'éclairer?

Bien à toi😊


Bonjour @Marjorie,


Tu as certainement dû recevoir un mail de ton hébergeur mentionnant les informations suivantes pour faire une connexion SQL:


  • Serveur
  • Utilisateur
  • Nom de la base


Le mot de passe est celui que tu as fait lors de la création de celle-ci.



Ce sont ces informations que tu as besoin afin de faire ta connexion à ta BDD.

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