Requête préparée avec un nom de colonne en paramètre
Bonjour,
J'essaye d'exécuter une requête préparée avec un nom de colonne que je passe en paramètre, mais malheureusement, je n'y arrive pas.
Le nom de ma colonne est considéré comme une chaïne de caractères.
Mon code sera plus parlant :
Code:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19
|
// On récupère le numéro de la colonne, et on le concatène avec une chaine de caractères :
$colonne = 'ma_colonne' . $_GET['Numero'];
// Autres paramètres de la requête
$donnees = 'Un peu de texte';
$id_ligne = 70;
// Requête
$query = $bdd->prepare("UPDATE MA_TABLE
SET `:ma_colonne` = :donnees
WHERE id_ligne = :id_ligne");
// Exécution
$query->execute(array(
':colonne' => $colonne,
':donnees' => $donnees,
':id_ligne' => $id_ligne
)); |
Et j'ai donc le message d'erreur suivant :
Code:
SQLSTATE[42S22]: Column not found: 1054 Champ ''ma_colonne4'' inconnu dans field list
Par contre, la méthode 'barbare' fonctionne :
Code:
1 2 3 4 5
| $query = "UPDATE MA_TABLE
SET $colonne = '$donnees'
WHERE id_ligne = $id_ligne";
$bdd->query($query); |
Quelqu'un aurait une explication ? Merci ;)