Aller au contenu

PDO : problème avec le retour d'une requête préparé


Sujets conseillés

Posté

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

Posté (modifié)

Oula, non du tout, cela me renvoie :

Catchable fatal error: Object of class PDOStatement could not be converted to string

Modifié par Portekoi
Pas besoin de citer le message précédent, on vient de le lire :)
Posté

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 />';
}

Posté (modifié)

Oui c'est bien ca ! Merci encore pour la rapidité !!!!!

Bonne continuation :)

Modifié par Portekoi
Arrêtez de citer le message précédent nom di diou ^^
Posté (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é par Dadou
Dedieux, le temps de rédiger, et d'être grossièrement intérrompu, Portekoi à répondu

Veuillez vous connecter pour commenter

Vous pourrez laisser un commentaire après vous êtes connecté.



Connectez-vous maintenant
×
×
  • Créer...