Je souhaite qu'on m'aide à comprendre ce que j'ai mal fait.
Voici mon code de modification obtenu par formulaire :je précise que les valeurs sont bien récupérées (vu par un echo que j'ai mis en commentaires donc ce n'est pas un problème de récupération des données).
Code : Tout sélectionner
<?php
require 'connectbd.php';
try
{
$options =
[
PDO ::MYSQL_ATTR_INIT_COMMAND =>'SET NAMES utf8',
PDO ::ATTR_ERRMODE => PDO::ERRMODE_EXCEPTION
];
$PDO = new PDO($DB_DSN, $DB_USER, $DB_PASS, $options);
$idrec = $_POST['idrec'];
//echo $idrec;
echo "<br>";
$nv_nom_recette = $_POST['nom_recette'];
$nv_liste_ing = $_POST['liste_ing'];
$nv_nom_magazine = $_POST['nom_magazine'];
$nv_page = $_POST['page'];
$nv_duree_prepa = $_POST['duree_prepa'];
$nv_duree_cuiss = $_POST['duree_cuiss'];
$nv_typerecette = $_POST['type_recette'];
/*echo "le nom de la recette a été changé en $nv_nomrecette";
echo "<br>";
echo "le type de recette est maintenant $nv_typerecette";
echo "<br>";
echo "La liste des ingrédients est désormais la suivante : $nv_liste_ing";
echo "<br>";
echo "La recette est dans $nv_nom_magazine et se trouve à la page $nv_page";
*/
$sql= "UPDATE recette SET
nom_recette = :nv_nom_recette,
liste_ing = :nv_liste_ing,
nom_magazine = :nv_nom_magazine,
page = :nv_page,
duree_prepa = :nv_duree_prepa,
duree_cuiss = :nv_duree_cuiss,
type_recette = :nv_typerecette
WHERE idrec = :irec";
$requete_modification = $PDO->prepare($sql);
$requete_modification->execute(array (
':nom_recette'=>$nv_nom_recette,
':liste_ing'=>$nv_liste_ing,
':nom_magazine'=>$nv_nom_magazine,
':page'=>$nv_page,
':duree_prepa'=>$nv_duree_prepa,
':duree_cuiss'=>$nv_duree_cuiss,
':type_recette'=>$nv_typerecette));
{echo "recette modifiée avec succès";
}
}
catch(PDOException $pe)
{
echo 'ERREUR : ' .$pe->getMessage();
}
?>ERREUR : SQLSTATE[HY093]: Invalid parameter number: number of bound variables does not match number of tokens