Se connecter sql

Résolu
justine -  
 Zero -
Bonjour,

j'ai mis

<?php
try
{
    $pdo = new PDO('mysql:host=legtux.org;dbname=sitenom', 'mdp', 'sitenom');
}
catch(Exception $e)
{
    echo 'Echec de la connexion à la base de données';
    exit();
}?>


et il m'affiche

Echec de la connexion à la base de données';

coment pon peut faire pour se connecter à la base sql

Configuration: Windows / Chrome 73.0.3683.86

7 réponses

  1. jordane45 Messages postés 30426 Date d'inscription   Statut Modérateur Dernière intervention   4 830
     
    Ça n'a pas marché... c'est à dire ???
    Tu as un message d'erreur ? Lequel ?
    Montre nous ton code modifié...et COMPLET.

    Et puid... indique nous si ton Script Est sur un serveur web ou tu es en local sur ton ordi ?
    0
    1. justine
       
      j'ai mis

      <?php
      try
      {
          $pdo = new PDO('mysql:host=legtux.org;dbname=nouveau', 'mdp', 'nouveau');
      }
      catch(Exception $e)
      {
          echo 'Echec de la connexion à la base de données';
          exit();
      }?>
      


      et il m'indique juste

      Echec de la connexion à la base de données

      peut-être que je me suis trompé de non

      merci
      0
    2. jordane45 Messages postés 30426 Date d'inscription   Statut Modérateur Dernière intervention   4 830
       
      Tu n'as pas appliqué ce qu il y'a dans le lien que je t'ai donné......
      0
    3. justine
       
      si tu veux je met ca

      <?php
      try{
      $bdd =new PDO('mysql:host=legtux.org;
       dbname=site; charset=utf8', 'site', 'mdp');
      // Activation des erreurs PDO
       $bdd->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION);
      // mode de fetch par défaut : FETCH_ASSOC / FETCH_OBJ / FETCH_BOTH
       $bdd->setAttribute(PDO::ATTR_DEFAULT_FETCH_MODE, PDO::FETCH_ASSOC);
      } catch(PDOException $e) {
          die('Erreur : ' . $e->getMessage());
      }?>
      


      il me dit :

      Erreur : SQLSTATE[HY000] [2002] Connection refused
      0
    4. jordane45 Messages postés 30426 Date d'inscription   Statut Modérateur Dernière intervention   4 830 > justine
       
      Ton script PHP se trouve sur le serveur qui héberge ta bdd ?
      Tu es sûr de tes identifiants ?

      car le message laisse présager que tu n'as pas les droits d'accès à la base avec les identifiants que tu as renseigné
      0
    5. vanesa
       
      je vais envoier un mail a la personne qui heberge legtux si c'est pas un souci chez eux

      pour temps, j'arrives à me connecter dans la base sql
      0
  2. jordane45 Messages postés 30426 Date d'inscription   Statut Modérateur Dernière intervention   4 830
     
    ça vient de la base ..... donc... il te manque la partie où tu fais la requête SELECT pour récupérer ces données....
    0
  3. justine
     
    j'ai mis tout ce code

     
    
    <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
    <html xmlns="http://www.w3.org/1999/xhtml" xml:lang="fr" >
       <head>
           <title>Liste des news</title>
            <meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1" />
            <style type="text/css">
            h2, th, td
            {
                text-align:center;
            }
            table
            {
                border-collapse:collapse;
                border:2px solid black;
                margin:auto;
            }
            th, td
            {
                border:1px solid black;
            }
            </style>
        </head>
        
        <body>
     
    <h2><a href="rediger_news.php">Ajouter une news</a></h2>
    <?php
    try{
    $bdd =new PDO('mysql:host=localhost;
     dbname=site; charset=utf8', 'site', 'mdp');
    // Activation des erreurs PDO
     $bdd->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION);
    // mode de fetch par défaut : FETCH_ASSOC / FETCH_OBJ / FETCH_BOTH
     $bdd->setAttribute(PDO::ATTR_DEFAULT_FETCH_MODE, PDO::FETCH_ASSOC);
    } catch(PDOException $e) {
        die('Erreur : ' . $e->getMessage());
    }
    //-----------------------------------------------------
    // Vérification 1 : est-ce qu'on veut poster une news ?
    //-----------------------------------------------------
    if (isset($_POST['titre']) AND isset($_POST['contenu']))
    {
        $titre = addslashes($_POST['titre']);
        $contenu = addslashes($_POST['contenu']);
        // On vérifie si c'est une modification de news ou non.
        if ($_POST['id_news'] == 0)
        {
            // Ce n'est pas une modification, on crée une nouvelle entrée dans la table.
            mysql_query("INSERT INTO news VALUES('', '" . $titre . "', '" . $contenu . "', '" . time() . "')");
        }
        else
        {
            // On protège la variable "id_news" pour éviter une faille SQL.
            $_POST['id_news'] = addslashes($_POST['id_news']);
            // C'est une modification, on met juste à jour le titre et le contenu.
            mysql_query("UPDATE news SET titre='" . $titre . "', contenu='" . $contenu . "' WHERE id='" . $_POST['id_news'] . "'");
        }
    }
     
    //--------------------------------------------------------
    // Vérification 2 : est-ce qu'on veut supprimer une news ?
    //--------------------------------------------------------
    if (isset($_GET['supprimer_news'])) // Si l'on demande de supprimer une news.
    {
        // Alors on supprime la news correspondante.
        // On protège la variable « id_news » pour éviter une faille SQL.
        $_GET['supprimer_news'] = addslashes($_GET['supprimer_news']);
        mysql_query('DELETE FROM news WHERE id=\'' . $_GET['supprimer_news'] . '\'');
    }
    ?>
    <table><tr>
    <th>Modifier</th>
    <th>Supprimer</th>
    <th>Titre</th>
    <th>Date</th>
    </tr>
    <?php
    $retour = mysql_query('SELECT * FROM news ORDER BY id DESC');
    while ($donnees = mysql_fetch_array($retour)) // On fait une boucle pour lister les news.
    {
    ?>
    <tr>
    <td><?php echo '<a href="rediger_news.php?modifier_news=' . $donnees['id'] . '">'; ?>Modifier</a></td>
    <td><?php echo '<a href="liste_news.php?supprimer_news=' . $donnees['id'] . '">'; ?>Supprimer</a></td>
    <td><?php echo stripslashes($donnees['titre']); ?></td>
    <td><?php echo date('d/m/Y', $donnees['timestamp']); ?></td>
    </tr>
    <?php
    } // Fin de la boucle qui liste les news.
    ?>
    </table>
    </body>
    </html>


    il me dit

    Fatal error: Uncaught Error: Call to undefined function mysql_query() in /var/www/legtux.org/users/site/www/V1/news/index.php:81 Stack trace: #0 {main} thrown in /var/www/legtux.org/users/site/www/V1/news/index.php on line 81
    
    0
  4. Vous n’avez pas trouvé la réponse que vous recherchez ?

    Posez votre question
  5. Zero
     
    Hello,

    Je pense que tu suis "bêtement" plusieurs tutos sans trop savoir ce que tu fais...
    mysql_query (obsolète) et PDO ne vont pas ensemble.
    Essaie plutôt :

    $stmt = $bdd->prepare("SELECT * FROM news ORDER BY id DESC");
    if ($stmt->execute()) {
      while ($donnees = $stmt->fetchAll(PDO::FETCH_ASSOC)) {
        // affichage ici
      }
    }


    OU
    $stmt = $dbh->prepare("SELECT * FROM news ORDER BY id DESC");
    $stmt ->execute();
    $result = $stmt ->fetchAll(PDO::FETCH_ASSOC);
    // print_r($result);
    // ici un foreach ou un while
    


    A adapter pour ton cas

    D'autres exemples ici :
    https://www.php.net/manual/fr/pdo.prepared-statements.php
    0
    1. justine
       
      merci j'arrete car c'est trop dur pour moi je laisse pour ceux qui on un cerveau inteligent je laisse pour des mecs car c'est pas pour les femes

      <?php
      try{
      $bdd =new PDO('mysql:host=localhost;
       dbname=site; charset=utf8', 'site', 'mdp');
      // Activation des erreurs PDO
       $bdd->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION);
      // mode de fetch par défaut : FETCH_ASSOC / FETCH_OBJ / FETCH_BOTH
       $bdd->setAttribute(PDO::ATTR_DEFAULT_FETCH_MODE, PDO::FETCH_ASSOC);
      } catch(PDOException $e) {
          die('Erreur : ' . $e->getMessage());
      }
      
      $stmt = $bdd->prepare("SELECT * FROM news ORDER BY id DESC");
      if ($stmt->execute()) {
        while ($donnees = $stmt->fetchAll(PDO::FETCH_ASSOC)) {
      
      
      
      echo stripslashes($donnees['titre']);
      
      
      
      }
      }
      ?>
      
      0
    2. Zero
       
      Hello :)
      Il faut persévérer !

      Une erreur de ma part, c'était fetch pour le while()...

      $stmt = $bdd->prepare('SELECT * FROM news ORDER BY id DESC');
      if ($stmt->execute()) {
       while ($donnees = $stmt->fetch(PDO::FETCH_ASSOC)) {
        echo $donnees['titre'];
       }
      }


      OU

      $stmt = $bdd->prepare('SELECT * FROM news ORDER BY id DESC');
      $stmt ->execute();
      $donnees = $stmt ->fetchAll(PDO::FETCH_ASSOC);
      foreach ($donnees as $key => $value) {
       echo $value['titre'];
      }


      OU

      $stmt = $bdd->prepare('SELECT * FROM news ORDER BY id DESC');
      $stmt ->execute();
      $donnees = $stmt ->fetchAll(PDO::FETCH_OBJ);
      foreach ($donnees as $key => $value) {
       echo $value->titre;
      }


      Les 3 fonctionnent parfaitement.
      0
    3. justine
       
      Meerci, ca fonction,ne

      mais qu'es ce qui est mieu de mettre le 1 er code ou 2 ème code ou le 3 ème code

      je penses qu'il y a un code mieux que les autres ;)

      sinon qui décide de change le code car mon code marchait en 2011

      sil faut que je change le code pour rentrer a la base donnée tout les 5 ans

      il faut qu'on nous previent par mail ;)
      0
    4. Zero
       
      Il n'y a pas de codes mieux que les autres, juste de bonnes pratiques.
      Personnellement, j'utilise le 3 pour garder le concept "objet" dans mon code.

      Personne ne change ton code, mais les langages évoluent. Il est normal que tes requêtes fonctionnaient en 2011 mais plus aujourd'hui, les versions de PHP changent et les anciennes ne sont plus supportées.

      https://fr.wikipedia.org/wiki/PHP
      0
    5. justine
       
      ca marche mais je verrais après

      car là, il commence par afficher id 3 au lieu du id 1

      je vais voir coment afficher l'ordre de la news ;)
      0
  6. justine
     
    je met le code si quelqu'un veux ;)

    <?php
    try{
    $bdd =new PDO('mysql:host=localhost;
     dbname=site; charset=utf8', 'site', 'mdp');
    // Activation des erreurs PDO
     $bdd->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION);
    // mode de fetch par défaut : FETCH_ASSOC / FETCH_OBJ / FETCH_BOTH
     $bdd->setAttribute(PDO::ATTR_DEFAULT_FETCH_MODE, PDO::FETCH_ASSOC);
    } catch(PDOException $e) {
        die('Erreur : ' . $e->getMessage());
    }
    
    
    // la requette pour recuperer les infos à la base sql
    // ASC pour afficher dans l'ordre croissant.
    // DESC pour l'afficher dans l'ordre decroissant
    $stmt = $bdd->prepare('SELECT * FROM news ORDER BY id ASC');
    
    
    // ensuite on vas afficher les infos de la news
    if ($stmt->execute()) {
     while ($donnees = $stmt->fetch(PDO::FETCH_ASSOC)) {
     
     // on affiche le titre 
       echo $donnees['titre'];
       
       // on affiche le contenu
       
       echo $donnees['contenu'];
       
       // on affiche le pseudo
       echo $donnees['pseudo'];
       
       // on affich la date sous forme 01/01/2019
       $date = DateTime::createFromFormat('Y-m-d H:i:s', $donnees['date']);
    echo $date->format('d/m/Y'); echo'<br />';
     }
    }?>
    
    0