Affichage des données
Résolu
A1111111*
-
A1111111* -
A1111111* -
Bonjour,
J'ai crée une base de données dans sql et je veux l'afficher dans php j'ai utilisée ce code
pour le fichier database.php
On m'affiche l'erreur suivante :
( ! ) Fatal error: in C:\wamp644\www\index.php on line 22
( ! ) PDOException: in C:\wamp644\www\index.php on line 22
Pouvez-vous m'aider svp ?
J'ai crée une base de données dans sql et je veux l'afficher dans php j'ai utilisée ce code
<?php include 'database.php'; global $db; $q =$db->query('SELECT * FROM utilisateurs'); while ($user= $q->fetch()) { var_dump($user); } ?>
pour le fichier database.php
<body> <?php define('Host','localhost'); define('DB_name','siteweb'); define('utilisateurs','root'); define('Pass',''); try{ $db=new PDO("mysql:3306.host=" .Host. ";DBname" .DB_name,utilisateurs,Pass); $db -> setAttribute(PDO:: ATTR_ERRMODE,PDO:: ERRMODE_EXCEPTION); echo "connexion >OK"; } catch(PDOException $e){ echo $e; }
On m'affiche l'erreur suivante :
( ! ) Fatal error: in C:\wamp644\www\index.php on line 22
( ! ) PDOException: in C:\wamp644\www\index.php on line 22
Pouvez-vous m'aider svp ?
EDIT : Ajout des balises de code (la coloration syntaxique).
Explications disponibles ici : ICI Merci d'y penser dans tes prochains messages. |
A voir également:
- Affichage des données
- Fuite données maif - Guide
- Trier des données excel - Guide
- Affichage double ecran - Guide
- Sauvegarde des données - Guide
- Supprimer les données de navigation - Guide
2 réponses
Bonjour,
Déjà, que vient faire le <body> dans ton database.php ??
Retire le !
Ensuite,
Il faut activer l'affichage des erreurs PHP
Ne pas utiliser global si tu n'es pas dans une fonction
Placer CHAQUE requête dans un bloc try/catch
Perso, je te conseille déviter le ->query et de prendre la bonne habitude d'utiliser des requête préparées.
Ce qui donnerait un truc du genre
Un peu de lecture complémentaire
https://forums.commentcamarche.net/forum/affich-37584941-php-pdo-gerer-les-erreurs
et ceci :
https://forums.commentcamarche.net/forum/affich-37584947-php-gestion-des-erreurs-debogage-et-ecriture-du-code
Déjà, que vient faire le <body> dans ton database.php ??
Retire le !
Ensuite,
Il faut activer l'affichage des erreurs PHP
Ne pas utiliser global si tu n'es pas dans une fonction
Placer CHAQUE requête dans un bloc try/catch
Perso, je te conseille déviter le ->query et de prendre la bonne habitude d'utiliser des requête préparées.
Ce qui donnerait un truc du genre
<?php //Affichage des erreurs PHP error_reporting(E_ALL); ini_set('display_errors', TRUE); ini_set('display_startup_errors', TRUE); // On inclus la connexion à la bdd require_once 'database.php'; //préparation de la requêt et des variables éventuelles $sql = "SELECT * FROM utilisateurs"; $datas = null; // pas de variable à passer à la requête //Execution de la requete try{ $requete = $db -> prepare($sql) ; $requete->execute($datas) ; //on stocke le resultat dans un array $result = $requete->fetchAll(); }catch(Exception $e){ // en cas d'erreur : echo " Erreur ! ".$e->getMessage(); echo " Les datas : " ; print_r($datas); } //on vérifie que le résultat de la requête n'est pas vide if(!empty($result)){ // on boucle sur chaque ligne du résultat foreach($result as $user ){ var_dump($user); } }
Un peu de lecture complémentaire
https://forums.commentcamarche.net/forum/affich-37584941-php-pdo-gerer-les-erreurs
et ceci :
https://forums.commentcamarche.net/forum/affich-37584947-php-gestion-des-erreurs-debogage-et-ecriture-du-code
Bonjour
Merci beaucoup d'avoir pris le temps pour répondre à ma question après avoir essayé le code je reçois une autre erreur
SQLSTATE[3D000]: Invalid catalog name: 1046 Aucune base n'a �t� s�lectionn�e Les datas : SELECT * FROM utilisateurs
Merci beaucoup d'avoir pris le temps pour répondre à ma question après avoir essayé le code je reçois une autre erreur
SQLSTATE[3D000]: Invalid catalog name: 1046 Aucune base n'a �t� s�lectionn�e Les datas : SELECT * FROM utilisateurs
Si tu avais regardé les liens que je t'ai donné... tu aurais du voir que ta chaine de connexion n'est pas bonne
Remplace ton code de connexion par:
Remplace ton code de connexion par:
<?php define('Host','localhost'); define('DB_name','siteweb'); define('utilisateurs','root'); define('Pass',''); define('Port',3306); try{ $db =new PDO('mysql:host='.Host.';port='.Port.'; dbname='.DB_name.'; charset=utf8', utilisateurs, Pass); // Activation des erreurs PDO $db->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION); // mode de fetch par défaut : FETCH_ASSOC / FETCH_OBJ / FETCH_BOTH $db->setAttribute(PDO::ATTR_DEFAULT_FETCH_MODE, PDO::FETCH_ASSOC); } catch(PDOException $e) { die('Erreur : ' . $e->getMessage()); }