Syntax error

Résolu
Ibnomar -  
 Ibnomar -
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. NHenry Messages postés 15235 Date d'inscription   Statut Modérateur Dernière intervention   387
     
    "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
  2. jordane45 Messages postés 30426 Date d'inscription   Statut Modérateur Dernière intervention   4 830
     
    SET :mat =
    

    A remplacer par
    SET $matiere =
    


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


    0
    1. Ibnomar
       
      Merci beaucoup. Problème résol
      0