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