[RESOLU] Difficulté avec "AND" dans une requete SQL

Eléphanteau du PHP | 38 Messages

19 août 2015, 22:51

Bonjour à tous,


J'ai des difficultés avec une requête sql où j'ai besoin d'avoir 2 condition pour WHERE

Il s'agit de récupérer la ligne qui correspond à un email et un password :

J'ai essayé ceci :
$info_compte = $bdd->prepare('SELECT * FROM membres WHERE email=:email AND password=password');
    // On execute la requête
    $info_compte->execute(array(
        'email' => $email
        'password' => $password
        ))or die(print_r($info_compte->errorInfo())); // On traque l'erreur s'il y en a une
 
    $info_compte = $info_compte->fetch();
Mais ça me donne une page blanche (erreur php désactivée sur mon serveur)


J'ai essayé également ceci :
$info_compte = $bdd->prepare('SELECT * FROM membres WHERE email=:email AND password='.$password.'');
    // On execute la requête
    $info_compte->execute(array(
        'email' => $email
        ))or die(print_r($info_compte->errorInfo())); // On traque l'erreur s'il y en a une
 
    $info_compte = $info_compte->fetch();
Et là avec var_dump() ça me donne ceci :

Array ( [0] => 42S22 [1] => 1054 [2] => Unknown column 'b3bf7e6dc8eebc6f57cda05f2580b8a6cbe5dcd7' in 'where clause' ) 1
Ps : Le pass est haché avec sha1() et il correspond bien à celui qui est dans la ligne visée


Merci à vous
Modifié en dernier par tgv2000fr le 20 août 2015, 08:43, modifié 1 fois.

Mammouth du PHP | 2703 Messages

19 août 2015, 23:27

$info_compte = $bdd->prepare('SELECT * FROM membres WHERE email=:email AND password=:password');
ainsi, il y a bien 2 paramètres à remplir et non un seul.

Eléphanteau du PHP | 38 Messages

20 août 2015, 08:42

Oui dsl il s'agit d'une faute de de frappe, j'ai toujours le même problème :)

ViPHP
xTG
ViPHP | 7331 Messages

20 août 2015, 11:27

As-tu une erreur (as-tu activé les erreurs PDO ?) ?
Car la requête proposée par or1 est correcte.

Mammouth du PHP | 1029 Messages

20 août 2015, 15:09

password étanr une fonction en MySQL/MAriaDB, as tu essayé d’échapper ta colonne

Code : Tout sélectionner

$info_compte = $bdd->prepare('SELECT * FROM membres WHERE email=:email AND `password`=:password');
L'expérience est la somme de toutes nos erreurs.

Eléphanteau du PHP | 38 Messages

21 août 2015, 11:38

Je vais voir si me erreur PDO sont activée

Et je teste ça pylos

Eléphanteau du PHP | 38 Messages

22 août 2015, 08:40

Résolu, il s'agissait bien de password fonction MySQL/MAriaDB

J'ai échapper la colonne.

Merci à vous et merci pylos