Problème de Connexion entre une application web et une base de données web

Petit nouveau ! | 3 Messages

05 mars 2015, 15:13

bonjour,
svp j'ai héberger une application web gratuitement pour la tester et la voila en ligne: http://masterenetcom.esy.es/
Mais je suis bloqué.Lorsque je viens d'entrer mes données et cliquer sur un bouton suivant pour que la page suivante s'affiche, un erreur me parait le voila: Fatal error: Call to a member function rowCount() on a non-object in /home/u820932616/public_html/classe/candidat.php on line 509 et meme les données ne s'ajoute pas à la base.
voici le ligne de la l'instruction erronée:
$obj1=$c->query($int1); if ($obj1->rowCount()==0)return "impo " ;
est-ce-que vous pouvez m'aider?
Merci d'avance

Mammouth du PHP | 688 Messages

05 mars 2015, 15:30

query retourne false si une erreur survient, ce qui fait que $obj1 n'est pas un objet.
il faut donc savoir qu'elle est exactement la requête exécutée et trouver pourquoi elle est invalide.

Petit nouveau ! | 3 Messages

05 mars 2015, 15:47

je ne vous comprenez pas? est-ce'qu'il y a une instruction à ajouter ou bien que-ce-que je dois faire?

ViPHP
xTG
ViPHP | 7331 Messages

05 mars 2015, 16:08

Il faut voir ce qu'il y a dans $int1 pour debugguer.
Le cas que tu présentes montre que la requête a échouée et donc on ne peut pas l'exploiter.
Dans ton cas le code tente de l'exploiter en récupérant le nombre d'enregistrement retourné.

Dans ton cas un code plus propre aurait été :
$obj1=$c->query($int1);
if( $obj1 !== false )
{
   if ($obj1->rowCount()==0)return "impo " ;
   // ....
}
else
{
   echo "Erreur de requête !";
}

Petit nouveau ! | 3 Messages

05 mars 2015, 16:11

voila le contenu de $int1:
$int1="SELECT * FROM intervalles_bac";

ViPHP
xTG
ViPHP | 7331 Messages

05 mars 2015, 16:55

Donc devant une requête simpliste voici les pistes :
- la table intervalles_bac n'existe pas dans ta base de donnée
- tu n'as pas sélectionné la bonne base de donnée à la connexion PDO
- tu n'as pas du tout exécuté de connexion PDO

Il serait bon d'activer la gestion des erreurs PDO. ;)
http://php.net/manual/fr/pdo.error-handling.php