Rectifications avec PDO
abdoulayecoumba
-
DelNC Messages postés 2234 Date d'inscription Statut Membre Dernière intervention -
DelNC Messages postés 2234 Date d'inscription Statut Membre Dernière intervention -
Bonsoir finalement je suis allé me replonger dans les cours disponibles sur le net traitant PDO notamment de la connexion aux bases de données de la gestion des erreurs avec je rappelle j'ai créé une base de données dénommée ''amateurs'' et qui contient une table dénommée ''agents'' ayant 3 colonnes suivantes : ''prenom'' ''nom'' ''adresse'' (il s'agit des noms de chaque colonne tels que je les ai écrits dans la base avec l'interface mysql de wamp ) et que j'ai rempli via un formulaire jusque là tout marche bien la table reçoit correctement touts les enregistrements que j'y envois.
Mais c'est quand je veux afficher les données de la table que j'ai des problèmes.
J'ai essayé d'utiliser le try/catch pour la connexion avec la base de données je pense l'avoir réussi car si j'exécute le code jusqu'à la ligne 13 le navigateur m'affiche une page blanche donc je cocois tel que j'ai rédigé le code qu'il n'y a pas d'erreur de connexion.
Je voudrais que quelqu'un me donne son avis sur le reste du code car le navigateur m'affiche les erreurs suivantes :
Notice: Undefined index: prenom in C:\wamp\www\Nouveau dossier (2)\Site2\pour_essayer.php on line 27
Notice: Undefined index: nom in C:\wamp\www\Nouveau dossier (2)\Site2\pour_essayer.php on line 27
Notice: Undefined index: adresse in C:\wamp\www\Nouveau dossier (2)\Site2\pour_essayer.php on line
Je rappelle que la ligne 27 est celle qui correspond à l'avant derniere ligne du code ci dessous :
echo $donnee['prenom'].':'.$donnee['nom'].':'.$donnee['adresse'].'<br/>';
voici le code :
<html>
<?php
//tentative de connexion à la base de données
try
{
$conect = new PDO('mysql:host=localhost;dbname=amateurs','root','');
}
catch (PDOException $e)
{
echo "Problème de connexion avec la base de donnée / Database error<br/>".$e->getMessage();
die();
}
try
{
$retour = $conect->query('SELECT * FROM agents');
$donnee = $retour->fetchAll();
}
catch (PDOException $e)
{
echo "Problème pour lire la base <br/>Opération annulée";
die();
}
echo $donnee['prenom'].':'.$donnee['nom'].':'.$donnee['adresse'].'<br/>';
$base = null;
?>
</html>
Mais c'est quand je veux afficher les données de la table que j'ai des problèmes.
J'ai essayé d'utiliser le try/catch pour la connexion avec la base de données je pense l'avoir réussi car si j'exécute le code jusqu'à la ligne 13 le navigateur m'affiche une page blanche donc je cocois tel que j'ai rédigé le code qu'il n'y a pas d'erreur de connexion.
Je voudrais que quelqu'un me donne son avis sur le reste du code car le navigateur m'affiche les erreurs suivantes :
Notice: Undefined index: prenom in C:\wamp\www\Nouveau dossier (2)\Site2\pour_essayer.php on line 27
Notice: Undefined index: nom in C:\wamp\www\Nouveau dossier (2)\Site2\pour_essayer.php on line 27
Notice: Undefined index: adresse in C:\wamp\www\Nouveau dossier (2)\Site2\pour_essayer.php on line
Je rappelle que la ligne 27 est celle qui correspond à l'avant derniere ligne du code ci dessous :
echo $donnee['prenom'].':'.$donnee['nom'].':'.$donnee['adresse'].'<br/>';
voici le code :
<html>
<?php
//tentative de connexion à la base de données
try
{
$conect = new PDO('mysql:host=localhost;dbname=amateurs','root','');
}
catch (PDOException $e)
{
echo "Problème de connexion avec la base de donnée / Database error<br/>".$e->getMessage();
die();
}
try
{
$retour = $conect->query('SELECT * FROM agents');
$donnee = $retour->fetchAll();
}
catch (PDOException $e)
{
echo "Problème pour lire la base <br/>Opération annulée";
die();
}
echo $donnee['prenom'].':'.$donnee['nom'].':'.$donnee['adresse'].'<br/>';
$base = null;
?>
</html>
1 réponse
Bonjour,
pour la connexion avec PDO il faut comme ceci
Les variables à donner
Par rapport au message d'erreur que vous avez, je pense que le problème vient du formulaire ou de la manière dont vous avez récupérer le nom et le prénom.
Code pour récupérer les données
pour la connexion avec PDO il faut comme ceci
Les variables à donner
$BDD_ADRESSE = "mysql:host=127.0.0.1";
$BDD_DBNAME = "maBase";
$BDD_LOGIN = "root";
$BDD_PASSWORD = "";
// connexion à la base de données
try {
$bdd = new PDO("$BDD_ADRESSE;dbname=$BDD_DBNAME", $BDD_LOGIN, $BDD_PASSWORD);
} catch(Exception $e) {
exit('Impossible de se connecter à la base de données.');
}
// exécution de la requête
$resultat = $bdd->query($requete) or die(print_r($bdd->errorInfo()));
Par rapport au message d'erreur que vous avez, je pense que le problème vient du formulaire ou de la manière dont vous avez récupérer le nom et le prénom.
Code pour récupérer les données
if(isset($_REQUEST["nom" ])) {$nom = $_REQUEST["nom" ];}
else{$nom = "";}
on dirait qu'il me manque une boucle qui me permet de lire et d'afficher toutes les enregistrements de la table
voici le code rectifié:
[code]
<html>
<?php
//tentative de connexion à la base de données
try
{
$conect = new PDO('mysql:host=localhost;dbname=amateurs','root','');
}
catch (PDOException $e)
{
echo "Problème de connexion avec la base de donnée / Database error<br/>".$e->getMessage();
die();
}
try
{
$retour = $conect->query('SELECT * FROM agents');
$donnee = $retour->fetch();
}
catch (PDOException $e)
{
echo "Problème pour lire la base <br/>Opération annulée";
die();
}
echo $donnee['prenom'].':'.$donnee['nom'].':'.$donnee['adresse'].'<br/>';
$base = null;
?>
</html>
/code
Je vous donne un exemple avec une requête sql et l'affichage de tout le résultat