erreur dans Requete SQL(PDO)

jmtrivia
Invité n'ayant pas de compte PHPfrance

21 févr. 2014, 15:23

Bonjour à toutes et tous,
je rencontre une erreur "Warning: PDOStatement::execute(): SQLSTATE[HY093]: Invalid parameter number: parameter was not defined in"
J'ai vérifié et re vérifié les paramètres, je ne vois pas pourquoi ce message. J'ai donc besoin de votre aide ;-) Ci dessous mon code, d'avance merci.

Code : Tout sélectionner

$req=$bdd->prepare('INSERT INTO prospects (prosp_nom, prosp_courriel, prosp_telephone, prosp_activite, prosp_message, prosp_qualite, prosp_datecreation) VALUES (:nom, :courriel, :telephone, :activite, :message, :qualite, :datecreation)'); $req->execute(array( 'prosp_nom' => $nom, 'prosp_courriel' => $courriel, 'prosp_telephone' => $telephone, 'prosp_activite' => $activite, 'prosp_message' => $message, 'prosp_qualite' => $qualite, 'prosp_datecreation' => $datecreation ));

ViPHP
ViPHP | 2577 Messages

21 févr. 2014, 17:03

mettre :nom et non pas prosp_nom dans l'array des paramètres.
Idem pour les autres paramètres.

jmtrivia
Invité n'ayant pas de compte PHPfrance

21 févr. 2014, 17:33

Merci beaucoup pour votre réponse.
Effectivement, je n'ai plus d'erreur PDO, mais un problème subsiste : Rien n'est enregistré dans la base !
Voici le code après correction. En tout cas concernant l'erreur PDO on peut clore le sujet.
<?php
$req=$bdd->prepare('INSERT INTO prospects (prosp_nom, prosp_courriel, prosp_telephone, prosp_activite, prosp_message, prosp_qualite, prosp_datecreation) 
																																 VALUES (:nom, :courriel, :telephone, :activite, :message, :qualite, :datecreation)');
 $req->execute(array(
	':nom' => $nom,
	':courriel' => $courriel,
	':telephone' => $telephone,
	':activite' => $activite,
	':message' => $message,
	':qualite' => $qualite,
	':datecreation' => $datecreation ));
Modifié en dernier par moogli le 22 févr. 2014, 15:01, modifié 1 fois.
Raison : bbcode code => php

Avatar du membre
Modérateur PHPfrance
Modérateur PHPfrance | 8758 Messages

22 févr. 2014, 15:02

salut,

récupère le retour de la méthode execute.
si === false affiche ce qu'il y a dans le tableau fournit par $req->error_info() ou $bdd->error_info()


@+
Il en faut peu pour être heureux ......