Query en PDO

Joncavidulienne -  
Pitet Messages postés 2826 Date d'inscription   Statut Membre Dernière intervention   -
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
A voir également:

3 réponses

Pitet Messages postés 2826 Date d'inscription   Statut Membre Dernière intervention   527
 
Salut,

Quel est le message d'erreur ?
0
Joncavidulienne
 
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   Statut Membre Dernière intervention   527
 
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