[RESOLU] UPDATE PDO erreur SQLSTATE[HY093]

Répondre


Cette question est un moyen d’empêcher des soumissions automatisées de formulaires par des robots.
Smileys
:D :) :( :o :shock: :? 8-) :lol: :x :P :oops: :cry: :evil: :twisted: :roll: :wink: :!: :?: :idea: :arrow: :| :mrgreen: =D> #-o =P~ :^o :non: :priere: 8-|
Voir plus de smileys
  Revue du sujet
 

  Étendre la vue Revue du sujet : [RESOLU] UPDATE PDO erreur SQLSTATE[HY093]

Re: [RESOLU] UPDATE PDO erreur SQLSTATE[HY093]

par cris84 » 01 déc. 2018, 19:52

Effectivement l'erreur ne venait pas de là mais plutôt des 2 paramètres manquants

'newpassword' => md5($newpassword),
        'email' => $email

Re: [RESOLU] UPDATE PDO erreur SQLSTATE[HY093]

par or 1 » 23 nov. 2018, 21:05

http://php.net/manual/fr/pdo.prepare.php
il y a un espace dans l'exemple donc je doute que ce soit ce qui génère l'erreur "Invalid parameter number: number of bound variables does not match number of tokens "

Re: [RESOLU] UPDATE PDO erreur SQLSTATE[HY093]

par blastouille » 23 nov. 2018, 20:29

En gros pas d'espace entre = et : dans la requête? Ha ben merci j'aurais appris quelque chose :)

Re: UPDATE PDO erreur SQLSTATE[HY093]

par cris84 » 23 nov. 2018, 20:10

voici la réponse toute bête :
$email = $_POST['email'];
$newpassword = rand(100000, 999999);
      
          $modif_pass = $bdd->prepare("UPDATE membres SET  password=:newpassword WHERE email =:email");
              $modif_pass->execute(array(
              'newpassword' => md5($newpassword),
	      'email' => $email
              ));
ça peut servir :)

Re: UPDATE PDO erreur SQLSTATE[HY093]

par blastouille » 23 nov. 2018, 19:45

Ah d'accord, dans ce cas désolé je ne trouve pas la réponse.

Re: UPDATE PDO erreur SQLSTATE[HY093]

par cris84 » 23 nov. 2018, 19:41

oui, je ne voulais pas donner le vrai nom de ma table :)

Re: UPDATE PDO erreur SQLSTATE[HY093]

par blastouille » 23 nov. 2018, 19:39

tu as changer le nom de ta table entre temps?

Re: UPDATE PDO erreur SQLSTATE[HY093]

par cris84 » 23 nov. 2018, 19:34

J'ai fait ça mais c'est idem :
$updat = $bdd->prepare('UPDATE membres SET password = :newpassword WHERE email = :email');
					$updat->execute(array(
					'password' => md5($newpassword),
					'email' => $email
					));
J'ai enlevé l'espace de la fin dit par blastouille mais c'est pareil...

Re: UPDATE PDO erreur SQLSTATE[HY093]

par blastouille » 23 nov. 2018, 19:30

Enlèves l'espace entre L d'email et ' dans ta requête. il me semble que c'est ça.

Re: UPDATE PDO erreur SQLSTATE[HY093]

par or 1 » 23 nov. 2018, 19:28

il y a 2 paramètres dans la requête et un seul est passé à execute.

UPDATE PDO erreur SQLSTATE[HY093]

par cris84 » 23 nov. 2018, 19:21

Bonjour à tous,
je n'arrive pas résoudre mon problème d'update avec PDO, je ne vois pas où est l'erreur. Je veux changer le mot de passe via un formulaire simple (il ne contient que l'adresse email. J'utilise rand pour avoir un nouveau mot de passe aléatoire.
Impossible de mettre à jour ma table. voici l'erreur : Uncaught PDOException: SQLSTATE[HY093]: Invalid parameter number: number of bound variables does not match number of tokens

et voici mon code
$email = $_POST['email'];
$newpassword = rand(100000, 999999);
			
					$updat = $bdd->prepare('UPDATE membres SET password = :newpassword WHERE email = :email ');
					$updat->execute(array(
					'password' => md5($newpassword)
					));
Merci de votre aide... :)