# PHP > PHP & Base de donnes > [PDO] Erreur execute(): SQLSTATE[HY093]: Invalid parameter number: number of bound variables

## Aaymeric91

Bonjour, je souhaite introduire les donns dans ma base de donn mysql mais j'ai l'erreur suivante lorsque j'excute ma page: 




> SCREAM: Error suppression ignored for
> ( ! ) Warning: PDOStatement::execute(): SQLSTATE[HY093]: Invalid parameter number: number of bound variables does not match number of tokens in C:\wamp\www\Test\verification.php on line 67


Je vous donne la partie du code ou est l'erreur: 


```

```

J'ai vrifi si j'ai pas oubli une virgule, parenthese ou quoi mais je ne pense pas que ca soit l'erreur. Les entres de mon array doivent elles tre dans le mme ordre que dans ma base de donn ?

Merci pour l'aide.

----------


## sabotage

Tu as mis "motDePasse" au lieu de "mdp" et tu n'as pas mis "reglement"

----------


## Aaymeric91

Dans ma base de donn l'entr pour le mot de passe est mdp et non motDePasse et pour reglement je suis obliger de le mettre ?

----------


## sabotage

> l'entr pour le mot de passe est mdp et non motDePasse


C'est toi qui a mis "motDePasse" ce n'est pas moi.



> et pour reglement je suis obliger de le mettre ?


S'il a une valeur par dfaut dans la dfinition de ta table, non.

----------


## Aaymeric91

Dans ma table le nom est mdp est la nom de ma variable est motDePasse donc je ne comprend pas ce que tu veux dire. Pour l'entre reglement, je n'ai pas de valeur prdfinie mais "reglement' => $reglement)" est correcte non ? (Sans les guillemets bien sr) 

Si cest 2 critures sont correctes, le problme est toujours prsent, je continue de chercher  ::): 

EDIT: J'ai compris ce que tu voulais dire avec mon mot de passe  ::):

----------


## sabotage

Pour faire simple : tu dois avoir la mme chose dans le "prepare" est dans le "execute".

- si ton paramtre s'apelle ":motDePasse" dans le prepare, il doit s'appeller ":motDePasse" dans le execute.
- si tu as un paramtre ":reglement" dans le prepare, tu dois avoir un paramtre ":reglement" dans le execute.

----------


## Aaymeric91

> - si ton paramtre s'apelle ":motDePasse" dans le prepare, il doit s'appeller ":motDePasse" dans le execute.


Et il doit avoir avoir le mme nom que mon entr dans ma base de donn (mdp) ou de mon paramre (motDePasse) ou ca ne change rien tant que les noms sont les mmes ?

----------


## sabotage

Le nom du paramtre est celui que tu veux.

----------


## Aaymeric91

Mh ok, le problme persiste :s

----------


## sabotage

Donne nous ton code corrig.

----------


## Aaymeric91

J'ai trouv le problme, il vient de numfixe ou j'avais oubli un "e" ... Merci quand mme pour vos rponses

----------

