Query en PDO

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&eacutee &agrave 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

  1. Salut,

    Quel est le message d'erreur ?
    0
    1. 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
      1. 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