joboy84 Posté 24 Janvier 2011 Posté 24 Janvier 2011 Bonjour, Je ne suis aps encore très familié avec la PDO.. J'ai le code suivant : <?php $nomconcours = trim(ucfirst(strtolower($_POST['nomjeuconcours']))); $statement = $connexion->prepare('SELECT id FROM jeuxconcours WHERE nom = :nomConcours'); $statement->bindParam('nomConcours', $nomconcours, PDO::PARAM_STR); $statement->execute(); if ($statement != FALSE) { echo'<p><font color="red"><strong>Statut :</strong> Le jeu concours '.$nomconcours.' est déjà présent dans la base !</p></font><br />'; }?> Il fonctionne pour la requête, mais il m'affiche toujours que le jeu concours est déjà présent, même si ce n'est pas le cas... D'où vient l'erreur et comment y remédier ? merci
captain_torche Posté 24 Janvier 2011 Posté 24 Janvier 2011 Essaye déjà de mettre "false" en minuscules, ça a sûrement quelque chose à voir avec ça.
joboy84 Posté 24 Janvier 2011 Auteur Posté 24 Janvier 2011 J'ai essayé, et cela ne change rien, le problème persiste
Portekoi Posté 24 Janvier 2011 Posté 24 Janvier 2011 Bonjour, Que te donne un echo $statement; Il te renverrait pas 0 ou 1 par hasard? Portekoi
joboy84 Posté 24 Janvier 2011 Auteur Posté 24 Janvier 2011 (modifié) Oula, non du tout, cela me renvoie : Catchable fatal error: Object of class PDOStatement could not be converted to string Modifié 24 Janvier 2011 par Portekoi Pas besoin de citer le message précédent, on vient de le lire :)
Portekoi Posté 24 Janvier 2011 Posté 24 Janvier 2011 Ok je viens de tilter. Je pense que Statement te renvoi le fait que la requête a bien été exécutée. Si tu veux savoir si "nom" est déjà présent dans ta base, passe par un rowCount Soit : if($statement -> rowCount() > 0){echo'<p><font color="red"><strong>Statut :</strong> Le jeu concours '.$nomconcours.' est déjà présent dans la base !</p></font><br />'; }
joboy84 Posté 24 Janvier 2011 Auteur Posté 24 Janvier 2011 (modifié) Oui c'est bien ca ! Merci encore pour la rapidité !!!!! Bonne continuation Modifié 24 Janvier 2011 par Portekoi Arrêtez de citer le message précédent nom di diou ^^
Dadou Posté 24 Janvier 2011 Posté 24 Janvier 2011 (modifié) $statement est un objet, il est donc TOUJOURS différent de false il faut plutôt faire <?php $nomconcours = trim(ucfirst(strtolower($_POST['nomjeuconcours']))); $statement = $connexion->prepare('SELECT id FROM jeuxconcours WHERE nom = :nomConcours'); $statement->bindParam('nomConcours', $nomconcours, PDO::PARAM_STR); $statement->execute(); if ($statement->rowCount() > 0) { echo'<p><font color="red"><strong>Statut :</strong> Le jeu concours '.$nomconcours.' est déjà présent dans la base !</p></font><br />'; }?> Modifié 24 Janvier 2011 par Dadou Dedieux, le temps de rédiger, et d'être grossièrement intérrompu, Portekoi à répondu
Sujets conseillés
Veuillez vous connecter pour commenter
Vous pourrez laisser un commentaire après vous êtes connecté.
Connectez-vous maintenant