Compréhension du message d'erreur
Bonjour/ bonsoir,
Je suis dans l'apprentissage de PDO. Pour ce faire, j'ai un simple formulaire:
Code:
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> |
Dont les valeurs retournées sont gérées par la classe suivante:
Code:
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(); |
J'obtiens le message d'erreur suivant:
Citation:
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 !') )
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 ?
merci,