Bonjour,
j'ai crée une function avec une requete préparée et l'objectif est que l'utilisateur puisse modifiée le titre de la collection qu'il a crée. A la validation du formulaire j'ai un message d'erreur
"Warning: PDOStatement::execute(): SQLSTATE[HY093]: Invalid parameter number: number of bound variables does not match number of tokens in modelCollections.php/"
Pourtant en sous j'ai bien cette ligne et qui correspond bien à mes trois variables lors de mon test à la validation du formulaire (il a bien récupéré les valeurs):
571840 ModelCollections->modifyCollections( $newTitre_coll = 'miocambio', $id_coll = '3', $fkidUtilis = '63' )
Voici ma fonctions dans le model :
l'erreur est à la ligne 38 :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9 function modifyCollections($newTitre_coll, $id_coll, $fkidUtilis) { $req = $this->bdd->prepare (" UPDATE collections SET 'titre_coll'=':newTitre_coll' where id_coll =':id_coll' and 'fkidUtilis=':fkidUtilis'"); $req->bindParam(':newTitre_coll', $newTitre_coll); $req->bindParam(':id_coll', $id_coll); $req->bindParam(':fkidUtilis', $fkidUtilis); $req->execute(); }
Code : Sélectionner tout - Visualiser dans une fenêtre à part $req->execute();et si besoin le formulaire :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9 if(isset($_POST["submitModifyCollect"])) { if(isset($_POST["modifyColl"])) { $modifyCollections = $collectionsController->modifyCollections( $newTitreColl=$_POST['modifyColl'], $id_coll = $_POST['collections'], $fkidUtilis = $_SESSION['id'] ); } }
je ne comprend pas trop pourtant j'ai passé du temps. Que veut dire parametres invalides ? ma table a bien trois colonne id_coll, titre_coll, et fkidUtilis
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14 <form action="" method="post"> <div class="form-group mb-3"> <label for="identifiant">modifier une collection</label> <div class="col-md-3 p-2 text-center"> <select select class ="form-select" name="collections"> <option selected>collections</option> <?php foreach($collections as $collection) : ?> <option value="<?= $collection['id_coll']?>"><?= $collection['titre_coll']?></option> <?php endforeach?> </select> <input type="text" class="form-control" name="modifyColl"> </div> <input type="submit" name="submitModifyCollect" class=" mb-3" value="submit"> </form>
merci pour votre aide
Partager