joboy84 Posté 24 Janvier 2011 Partager 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 Lien vers le commentaire Partager sur d’autres sites More sharing options...
captain_torche Posté 24 Janvier 2011 Partager Posté 24 Janvier 2011 Essaye déjà de mettre "false" en minuscules, ça a sûrement quelque chose à voir avec ça. Lien vers le commentaire Partager sur d’autres sites More sharing options...
joboy84 Posté 24 Janvier 2011 Auteur Partager Posté 24 Janvier 2011 J'ai essayé, et cela ne change rien, le problème persiste Lien vers le commentaire Partager sur d’autres sites More sharing options...
Portekoi Posté 24 Janvier 2011 Partager Posté 24 Janvier 2011 Bonjour, Que te donne un echo $statement; Il te renverrait pas 0 ou 1 par hasard? Portekoi Lien vers le commentaire Partager sur d’autres sites More sharing options...
joboy84 Posté 24 Janvier 2011 Auteur Partager 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 :) Lien vers le commentaire Partager sur d’autres sites More sharing options...
Portekoi Posté 24 Janvier 2011 Partager 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 />'; } Lien vers le commentaire Partager sur d’autres sites More sharing options...
joboy84 Posté 24 Janvier 2011 Auteur Partager 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 ^^ Lien vers le commentaire Partager sur d’autres sites More sharing options...
Dadou Posté 24 Janvier 2011 Partager 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 Lien vers le commentaire Partager sur d’autres sites More sharing options...
Portekoi Posté 24 Janvier 2011 Partager Posté 24 Janvier 2011 T'es trop lent Dadou aussi... Lien vers le commentaire Partager sur d’autres sites More sharing options...
Sujets conseillés
Veuillez vous connecter pour commenter
Vous pourrez laisser un commentaire après vous êtes connecté.
Connectez-vous maintenant