Bonjour/ bonsoir,

Je suis dans l'apprentissage de PDO. Pour ce faire, j'ai un simple formulaire:
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>
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
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:
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,