Bonjour
je suis en cours de tuto sur php et les bdd et me voici planter lamentablement et je ne trouve pas l'erreur.
quelqu'un a une idées ?
j'ai créer un formulaire qui m'envoie les données pour faire un update sur la base.
je reçois et je sécurise. Tout ce passe bien sauf pour le ID. erreur affiché lors de l'éxecution =>
Warning: PDOStatement::execute() [pdostatement.execute]: SQLSTATE[HY093]: Invalid parameter number: parameter was not defined in C:\wamp\www\test\p.php on line 335
voici le code :
<?php
if(isset( $_POST['nomupdat']))
{
$nomupdat=htmlspecialchars($_POST['nomupdat']);
$possesseurupdat=htmlspecialchars($_POST['possesseurupdat']);
$consoleupdat=htmlspecialchars($_POST['consoleupdat']);
$prixupdat=(int)$_POST['prixupdat'];
$nbre_joueurs_maxupdat=(int)$_POST['nbre_joueurs_maxupdat'];
$commentairesupdat=htmlspecialchars($_POST['commentairesupdat']); // <= la ligne 335 est ici
$idupdat = (int) $_POST['idupdat'];
include('connect_bdd.php');
$updat = $bdd->prepare('UPDATE jeux_video SET nom = :nomupdat , possesseur = :possesseurupdat , console = :consoleupdat , prix = :prixupdat , commentaires = :commentairesupdate WHERE ID = :idupdat ');
$updat->execute(array(
'nomupdat' => $nomupdat ,
'possesseurupdat' => $possesseurupdat ,
'consoleupdat' => $consoleupdat ,
'prixupdat'=> $prixupdat ,
'idupdat'=> $idupdat,
'commentairesupdat'=>$commentairesupdat ));
echo " <br/>l'entrée " . $nomupdat . " est modifiée <br/>" ;
echo ' id du jeux modifié ' . $idupdat ;
$updat->closeCursor(); // termine le traitement de la requete
}
?>
je comprend pas pourquoi le id est pas défini surtout que echo ' id du jeux modifié ' . $idupdat ; affiche l'ID.
merci pour votre aide à venir.
Regarde bien l'erreur renvoyée:
Warning: PDOStatement::execute() [pdostatement.execute]: SQLSTATE[HY093]: Invalid parameter number: parameter was not defined
Ca t'indique qu'à l'appel de ton execute, tu n'as pas le bon nombre de paramètres ou ils sont incorrects.
L'erreur se trouve un peu plus bas que la ligne indiquée:
MERCI
çà fait depuis 11h ce matin que suis dessus, tout çà pour un e de trop.
j'ai traduit l'erreur par le nombre est pas défini et pas le nombre de paramètre.
maintenant çà marche au poil.
Avant de poster un message, vérifiez la date du sujet dans lequel vous comptiez intervenir.
Si le dernier message sur le sujet date de plus de deux mois, mieux vaut ne pas répondre. En effet, le déterrage d'un sujet nuit au bon fonctionnement du forum, et l'informatique pouvant grandement changer en quelques mois il n'est donc que rarement pertinent de déterrer un vieux sujet.
Au lieu de déterrer un sujet il est préférable :
soit de contacter directement le membre voulu par messagerie privée en cliquant sur son pseudonyme pour accéder à sa page profil, puis sur le lien "Ecrire un message"
soit de créer un nouveau sujet décrivant votre propre contexte
ne pas répondre à un déterrage et le signaler à la modération
SMITH Emmanuel
Développeur full-stack chez LiveSession'
Email: emmanuel.smith@jagfx.fr
Site: www.emmanuel-smith.me
Github: https://github.com/JAGFx