Query en PDO

Fermé
Joncavidulienne - 3 juin 2014 à 16:58
Pitet Messages postés 2826 Date d'inscription lundi 11 février 2013 Statut Membre Dernière intervention 21 juillet 2022 - 4 juin 2014 à 09:17
Bonjour,

Je penses faire une erreur dans ma commande mais je ne sais pas laquelle.

<?php
if(isset($_POST['valider']))
{

include("connect_bdd.php");
$mail = $_POST['mail'];
$mdp = md5($_POST['mdp']);

$req=$bdd->query( "SELECT utinom,utiadresse,utiville,uticode FROM UTILISATEUR WHERE utimail='$mail' and utipas='$mdp'");

if ($data = $req->fetch())

{
echo '<p> <font face="arial" size="5px" color="blue"; position:relative;left:50px;top:450px;>Votre commande sera expediée à cette adresse : <br><br>'.$data['utinom'].'<br> '.$data['utiadresse'].'</b><br> '.$data['utiville'].'<br>'.$data['uticode'].'</font> ';

}

else
{
echo '<p><font face="arial" size="5px" color="red";position:relative;left:300px;top:450px;\">Veuillez vous inscrire avant de commander</font>';
}
}

?>

J'ai ce message d'erreur:

Quelqu'un pourrait-il m'aider à y voir clair?
Merci

3 réponses

Pitet Messages postés 2826 Date d'inscription lundi 11 février 2013 Statut Membre Dernière intervention 21 juillet 2022 524
3 juin 2014 à 17:25
Salut,

Quel est le message d'erreur ?
0
Joncavidulienne
3 juin 2014 à 17:39
Merci de me répondre
Je n'ai pas de message d'erreur en local mais je l'ai sur le serveur

Fatal error: Call to a member function fetch() on a non-object in /homepages/5/d521608261/htdocs/recherche.php on line 35

La ligne 35 correspond à : if ($data = $req->fetch())

Je ne sais pas quoi faire étant donné que je peux m'inscrire dans la base mais que je ne peux pas la questionner.
0
Pitet Messages postés 2826 Date d'inscription lundi 11 février 2013 Statut Membre Dernière intervention 21 juillet 2022 524
Modifié par Pitet le 4/06/2014 à 09:17
Ta requête n'est pas correcte, donc la méthode query te retourne le booléen false, tu ne peux donc pas appeler la méthode fetch sur un booléen (d'où le message d'erreur).

Essaye ceci pour voir ton erreur sql :
if (! $req = $bdd->query("SELECT utinom,utiadresse,utiville,uticode FROM UTILISATEUR WHERE utimail=" . $bdd->quote($mail) . " and utipas=" . $bdd->quote($mdp))) {
 var_dump($bdd->errorInfo());
 exit();
}


Au passage j'ai ajouté l'utilisation de la méthode quote pour éviter les injections sql.
0