Syntax error

Résolu
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

  1. Modérateur
    "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.
    1. Modérateur
      SET :mat =
      

      A remplacer par
      SET $matiere =
      


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


      1. Merci beaucoup. Problème résol