Probleme php fetch
david261990
-
tropicalm -
tropicalm -
Bonjour,
Voilà, je suis en train de créer une classe de connexion php dans laquelle je veux voir si une adresse ip et présente dans la base grâce a une méthode.
je place le contenu de la requete dans un tableau via la fonction fetch mais lorsque que je veux voir le contenu ...rien ne s'affiche ayant pourtant une ip dans la base.
Aidez moi ça fait 3 jours que je suis dessus.
Voici une ébauche de mon code :
class connexion extends PDO
{
//attribut//
private $hote;//nom de l'hote
private $bdnom;
private $hdb;//hote +db
private $utilisateur;
private $mdp;
//constructeur//
public function connexion($h,$d,$u,$m)
{
$this->hote=$h;
$this->bdnom=$d;
$this->utilisateur=$u;
$this->mdp=$m;
$this->hdb='mysql:hote='.$this->hote.';bdnom='.$this->bdnom;
try
{
parent::__construct($this->hdb,$this->utilisateur,$this->mdp);
}
catch (exeption $e)
{
die('Erreur : ' . $e->getMessage());
}
}
public function cherche_ip_visiteur($ip)
{
$req = $this->prepare('select ip from ip_visiteur where ip=?');
$req->execute(array($ip));
$donnee=$req->fetch();
if ($donnee['ip']!='') echo $donnee['ip'];
else echo 'pasbon';
$req->closeCursor();
}
et voici l'appel de la fonction dans un autre fichier :
<?php
include 'fonction.php';
$bdd = new connexion('localhost','gazerface','root','');
$bdd->cherche_ip_visiteur('127.0.0.1');
?>
PS : ma bdd contient bien l'adresse 127.0.0.1; la requete marche aussi. Tester via phpmyadmin
Voilà, je suis en train de créer une classe de connexion php dans laquelle je veux voir si une adresse ip et présente dans la base grâce a une méthode.
je place le contenu de la requete dans un tableau via la fonction fetch mais lorsque que je veux voir le contenu ...rien ne s'affiche ayant pourtant une ip dans la base.
Aidez moi ça fait 3 jours que je suis dessus.
Voici une ébauche de mon code :
class connexion extends PDO
{
//attribut//
private $hote;//nom de l'hote
private $bdnom;
private $hdb;//hote +db
private $utilisateur;
private $mdp;
//constructeur//
public function connexion($h,$d,$u,$m)
{
$this->hote=$h;
$this->bdnom=$d;
$this->utilisateur=$u;
$this->mdp=$m;
$this->hdb='mysql:hote='.$this->hote.';bdnom='.$this->bdnom;
try
{
parent::__construct($this->hdb,$this->utilisateur,$this->mdp);
}
catch (exeption $e)
{
die('Erreur : ' . $e->getMessage());
}
}
public function cherche_ip_visiteur($ip)
{
$req = $this->prepare('select ip from ip_visiteur where ip=?');
$req->execute(array($ip));
$donnee=$req->fetch();
if ($donnee['ip']!='') echo $donnee['ip'];
else echo 'pasbon';
$req->closeCursor();
}
et voici l'appel de la fonction dans un autre fichier :
<?php
include 'fonction.php';
$bdd = new connexion('localhost','gazerface','root','');
$bdd->cherche_ip_visiteur('127.0.0.1');
?>
PS : ma bdd contient bien l'adresse 127.0.0.1; la requete marche aussi. Tester via phpmyadmin
A voir également:
- Probleme php fetch
- Easy php - Télécharger - Divers Web & Internet
- Expert php pinterest - Télécharger - Langages
- Retour à la ligne php ✓ - Forum PHP
- Retour a la ligne avec Echo comment faire ? - Forum Webmastering
- Alert php - Forum PHP
1 réponse
Moi j'aurais mis des simple quotes dans la requête, car IP est un champ chaîne : WHERE ip LIKE \'?\ '
D'une manière générale, il ne faut pas coder en direct comme ça, il faut toujours tester le code retour de toutes les fonctions, de façon à repérer la première erreur.
Utilise FirePHP aussi pour visualiser les différentes étapes : que contient $req, que contient $donnee, et utilise les fonctions de reporting d'erreur de PDO pour connaître le code retour de la BDD.
D'une manière générale, il ne faut pas coder en direct comme ça, il faut toujours tester le code retour de toutes les fonctions, de façon à repérer la première erreur.
Utilise FirePHP aussi pour visualiser les différentes étapes : que contient $req, que contient $donnee, et utilise les fonctions de reporting d'erreur de PDO pour connaître le code retour de la BDD.