Bonjour,
J'ai un petit soucis au niveau d'une requête UPDATE en MySQLi. Elle fonctionne parfaitement, mais il y a quand même un message d'erreur affiché. En le cachant avec un @, on y voit que du feu, mais bon c'est pas très pro comme solution ! x)
Pour vous situer dans le contexte : je dois enregistrer les données d'un formulaire (une fiche élève), qui est remplie par des professeurs. Si la fiche n'existe pas, je la crée (pas de soucis à ce niveau là). Sinon, je la modifie.
Voilà mon code pour la requête de modification :
Et mon message d'erreur (quand j'enlève le @) :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8 try { $req = mysqli_prepare( $linkFE, "UPDATE fiche SET Resultats='$Resultats', CapTravail='$CapTravail', NivPhy='$NivPhy', NivTech='$NivTech', NivPsy='$NivPsy', CoMilieu='$CoMilieu', NbSeances='$NbSeances', NbAbs='$NbAbs', SynthCT='$SynthCT', NivGen='$NivGen', TravailClasse='$TravailClasse', TravailPerso='$TravailPerso', AbsRetards='$AbsRetards', Remarques='$Remarques', SynthPP='$SynthPP', SynthASS='$SynthASS', SynthEPS='$SynthEPS', SynthPA='$SynthPA', Symbole='$Symbole' WHERE NomPnom LIKE '$NomPnom' AND Trimestre LIKE '$Trimestre'" ); @mysqli_stmt_bind_param( $req, "sssssssssssssssssss", $Resultats, $CapTravail, $NivPhy, $NivTech, $NivPsy, $CoMilieu, $NbSeances, $NbAbs, $SynthCT, $NivGen, $TravailClasse, $TravailPerso, $AbsRetards, $Remarques, $SynthPP, $SynthASS, $SynthEPS, $SynthPA, $Symbole ); mysqli_stmt_execute($req); $ok = "<p>Fiche enregistrée avec succès.</p>"; } catch (Exception $e) { $error = "<p class='error'>Erreur d'exécution. Impossible de modifier la fiche.</p>"; }
La ligne 60, c'est celle avec "mysqli_stmt_bind_param(...)". Mais, je ne vois pas pourquoi il y a ce message d'erreur, puisque mon nombre de variables est correct... Il y a bien 19 variables à modifier, 19 "s", et 19 variables données en paramètre.Warning: mysqli_stmt_bind_param() [<a href='function.mysqli-stmt-bind-param'>function.mysqli-stmt-bind-param</a>]: Number of variables doesn't match number of parameters in prepared statement in C:\wamp\www\SuiviSportifs\EnregistrerEleve.php on line 60
Voilà, j'aimerais avoir une véritable solution à cela, au lieu de mon petit bidouillage.
Si vous avez des idées sur la question, je vous en serais reconnaissante ^^
Partager