Probleme php fetch

Fermé
david261990 - 29 oct. 2010 à 17:20
 tropicalm - 30 oct. 2010 à 10:38
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

A voir également:

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.
0