Bonjour/ bonsoir,
Je suis dans l'apprentissage de PDO. Pour ce faire, j'ai un simple formulaire:
Dont les valeurs retournées sont gérées par la classe suivante:
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22 <?php if(!empty ($_POST)){ if($auth->login($_POST)); } else { echo 'Mauvais identifiant !'; } //------------------------------------------------------------------------ ?> <form name="formIdent" id="formIdent" method="post" action="#"> <label> Votre identifiant : <input type="text" name="login" id="login"> </label> <label> Votre mot de passe : <input type="password" name="password" id="password"> </label> <label> <input type="submit" name="connect" id="connect" value="Connexion !"> </label> </form>
J'obtiens le message d'erreur suivant:
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12 class Auth { function login($data) { global $PDO; $select = $PDO->prepare('SELECT * FROM users WHERE login = :login AND password = :password'); $result = $select->execute($data); $result = $select->fetchAll(); var_dump($result); } } $auth = new Auth();
Je crois comprendre que le nombre de paramètres de la requête ne correspond pas au nombre qu'elle doit traiter... Est-ce à dire que l'index "'connect' => 'Connexion !'" est de trop ? (je ne vois que ça...) Mais dans ce cas, comment corriger cela ?Fatal error: Uncaught exception 'PDOException' with message 'SQLSTATE[HY093]: Invalid parameter number: number of bound variables does not match number of tokens' in C:\wamp\www\...
...
Auth->login( $data = array ('login' => 'admin', 'password' => 'admin', 'connect' => 'Connexion !') )
PDOStatement->execute( array ('login' => 'admin', 'password' => 'admin', 'connect' => 'Connexion !') )
merci,
Partager