[PHP , PDO , SQL] Fetch sur un prepare ???
dodvega
-
afrnos Messages postés 59 Date d'inscription Statut Membre Dernière intervention -
afrnos Messages postés 59 Date d'inscription Statut Membre Dernière intervention -
Bonjour,
Je me demande vraiment pourquoi le code suivant ne marche pas, j'ai fait pas mal de recherches sur le Web pourtant :O
En fait, il s'agit d'un module de connexion... la première vérification consiste à savoir si l'identifiant existe, c'est pourquoi j'applique un fetchColumn() sur ma $requete...
La dernière vérification consiste en la concordance du mot de passe avec le pseudo... Et c'est là que ça coince. L'array que j'utilise ne comporte aucune donnée.
Appréciez :
Pourriez-vous m'aider à débuguer ce script ?
Merci d'avance !
Je me demande vraiment pourquoi le code suivant ne marche pas, j'ai fait pas mal de recherches sur le Web pourtant :O
En fait, il s'agit d'un module de connexion... la première vérification consiste à savoir si l'identifiant existe, c'est pourquoi j'applique un fetchColumn() sur ma $requete...
La dernière vérification consiste en la concordance du mot de passe avec le pseudo... Et c'est là que ça coince. L'array que j'utilise ne comporte aucune donnée.
Appréciez :
$identifiant = $_POST['identifiant']; $mot_de_passe = $_POST['mot_de_passe']; $requete = sql()->prepare("SELECT * FROM membres WHERE identifiant = ?"); $requete->execute(array($identifiant)); if($requete->fetchColumn() == 0) echo "L'identifiant renseigné n'existe pas."; else { $array = $requete->fetch(); // NE MARCHE PAS :O AUCUNE ERREUR RETOURNEE if(md5($mot_de_passe) != $array['mot_de_passe']) echo "Le mot de passe renseigné ne correspond pas."; else echo "Connexion réussie !"; }
Pourriez-vous m'aider à débuguer ce script ?
Merci d'avance !
A voir également:
- [PHP , PDO , SQL] Fetch sur un prepare ???
- Easy php - Télécharger - Divers Web & Internet
- Expert php pinterest - Télécharger - Langages
- Logiciel sql - Télécharger - Bases de données
- Requête sql pix - Forum Python
- Un agent immobilier a préparé un diaporama pour présenter une maison à vendre ✓ - Forum Powerpoint
2 réponses
Bonjour,
A quoi correspond la fonction sql() ?
Essayez de cette manière :
A quoi correspond la fonction sql() ?
Essayez de cette manière :
$requete = sql()->prepare("SELECT * FROM membres WHERE identifiant = ?"); $requete->execute(array($identifiant)); $donnees = $requete->fetch(); if($donnees == 0) echo "L'identifiant renseigné n'existe pas."; else { if(md5($mot_de_passe) != $donnees['mot_de_passe']) echo "Le mot de passe renseigné ne correspond pas."; else echo "Connexion réussie !"; }
Bonjour,
La fonction sql() correspond tout simplement à l'instanciation de PDO :
Votre code marche parfaitement, je n'avais même pas pensé à faire ça xD
Mais je trouve quand même bizarre qu'il soit impossible de cumuler un fetchColumn() avec un fetch()...
Merci encore, bonne journée !
La fonction sql() correspond tout simplement à l'instanciation de PDO :
function sql() { try { $pdo_options[PDO::ATTR_ERRMODE] = PDO::ERRMODE_EXCEPTION; $bdd = new PDO('mysql:host=localhost;dbname=test', 'root', '', $pdo_options); } catch (Exception $e) { die('Erreur : ' . $e->getMessage()); } return $bdd; }
Votre code marche parfaitement, je n'avais même pas pensé à faire ça xD
Mais je trouve quand même bizarre qu'il soit impossible de cumuler un fetchColumn() avec un fetch()...
Merci encore, bonne journée !