Syntax error

Résolu/Fermé
Ibnomar - Modifié le 19 janv. 2020 à 20:47
 Ibnomar - 19 janv. 2020 à 21:34
Bonjour,
J’ai écrit ma requête pour insérer les notes de mes élèves dans ma belle . Voici la requête :
$sql = "UPDATE bulletin SET :mat = :note Where id=:ident";
 $datas = array(':mat'=>$matiere, ':note'=>$personne_note,':ident'=>$personne_id);

//Execution de la requete
try{
  $requete = $bdd -> prepare($sql) ;
  $requete->execute($datas) ;
}catch(Exception $e){
  // en cas d'erreur :
   echo " Erreur ! ".$e->getMessage();
   echo " Les datas : " ;
  print_r($datas);
}

Mais mon code affichait l’erreur :
Syntax erreur or access violation

Pouvez-vous m’expliquer le problème ?
Merci d’avance.

EDIT : Ajout des balises de code

2 réponses

NHenry Messages postés 15113 Date d'inscription vendredi 14 mars 2003 Statut Modérateur Dernière intervention 22 avril 2024 331
19 janv. 2020 à 20:48
"pour insérer les notes"
"UPDATE"
UPDATE met à jour, n'insère rien.

"SET :mat = :note"
Il me semble que les paramètres ne peuvent pas être des nom de champs ou de table, c'est une protection pour éviter les injections.
0
jordane45 Messages postés 38144 Date d'inscription mercredi 22 octobre 2003 Statut Modérateur Dernière intervention 21 avril 2024 4 650
Modifié le 19 janv. 2020 à 20:49
SET :mat =

A remplacer par
SET $matiere =


et bien sûr... retirer ça de l'array data
':mat'=>$matiere,


0
Merci beaucoup. Problème résol
0