Se connecter sql

Résolu/Fermé
justine - 4 avril 2019 à 12:30
 Zero - 12 avril 2019 à 10:12
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

jordane45 Messages postés 36378 Date d'inscription mercredi 22 octobre 2003 Statut Modérateur Dernière intervention 5 octobre 2022 4 367
4 avril 2019 à 15:10
0
merci, mais ca n'a pas marché

sinon tempis je me debrouilerais sans le sql ;)
0
jordane45 Messages postés 36378 Date d'inscription mercredi 22 octobre 2003 Statut Modérateur Dernière intervention 5 octobre 2022 4 367
5 avril 2019 à 20:59
Ç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
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
jordane45 Messages postés 36378 Date d'inscription mercredi 22 octobre 2003 Statut Modérateur Dernière intervention 5 octobre 2022 4 367
6 avril 2019 à 07:41
Tu n'as pas appliqué ce qu il y'a dans le lien que je t'ai donné......
0
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
jordane45 Messages postés 36378 Date d'inscription mercredi 22 octobre 2003 Statut Modérateur Dernière intervention 5 octobre 2022 4 367 > justine
6 avril 2019 à 14:37
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
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
jordane45 Messages postés 36378 Date d'inscription mercredi 22 octobre 2003 Statut Modérateur Dernière intervention 5 octobre 2022 4 367
8 avril 2019 à 08:11
ç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
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

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
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
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
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
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
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
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
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
Super !
0