IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

PHP & Base de données Discussion :

nom de colonne variable dans la requête SQL [PDO]


Sujet :

PHP & Base de données

  1. #1
    Nouveau membre du Club
    Homme Profil pro
    Développeur Web
    Inscrit en
    Juillet 2009
    Messages
    33
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Loire (Rhône Alpes)

    Informations professionnelles :
    Activité : Développeur Web
    Secteur : Communication - Médias

    Informations forums :
    Inscription : Juillet 2009
    Messages : 33
    Points : 27
    Points
    27
    Par défaut nom de colonne variable dans la requête SQL
    Bonjour,
    Je viens à vous afin de m'éclairer/aider…

    En simplifiant, j'ai une table MySQL dans laquelle j'ai 6 colonnes id : id, img1, img2, img3, img4, img5

    Je dois vider une des colonnes imgX pour un enregistrement précis.
    J'ai donc bêtement imaginé que ceci pouvait fonctionner :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    $template_del_img = $bdd->prepare('UPDATE odt_pages SET :colonnebdd = "" WHERE id = :id')
    $B_template_del_img = $template_del_img->execute(array('id'=>$v_id_page, 'colonnebdd'=>$v_colonnebdd));
    Mais malheureusement, non !
    J'ai ce message d'erreur :
    Erreur SQL : SQLSTATE[42000]: Syntax error or access violation: 1064 You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near ''img1' = "" WHERE id = '44'' at line 1
    Du coup, est-ce tout simplement pas possible/prévu ou y a t-il une méthode pour désigner des colonnes "variables"?
    Merci d'avance pour vos réponses

  2. #2
    Modérateur
    Avatar de sabotage
    Homme Profil pro
    Inscrit en
    Juillet 2005
    Messages
    29 208
    Détails du profil
    Informations personnelles :
    Sexe : Homme

    Informations forums :
    Inscription : Juillet 2005
    Messages : 29 208
    Points : 44 155
    Points
    44 155
    Par défaut
    Par définition, le nom de tous les objets doit être connu pour préparer une requête, donc le nom des colonnes ne peut pas être variable.

    Tu peux le faire manuellement :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    $template_del_img = $bdd->query('UPDATE odt_pages SET `' . $v_colonnebdd. '`= "" WHERE id = '  . $v_id_page);
    N'oubliez pas de consulter les FAQ PHP et les cours et tutoriels PHP

  3. #3
    Nouveau membre du Club
    Homme Profil pro
    Développeur Web
    Inscrit en
    Juillet 2009
    Messages
    33
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Loire (Rhône Alpes)

    Informations professionnelles :
    Activité : Développeur Web
    Secteur : Communication - Médias

    Informations forums :
    Inscription : Juillet 2009
    Messages : 33
    Points : 27
    Points
    27
    Par défaut
    Bonjour sabotage,
    En attendant une solution, et pour continuer d'avancer, j'avais utiliser, un peu comme tu le proposes :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    $bdd->exec('UPDATE odt_pages SET `' . $v_colonnebdd. '`= "" WHERE id = '  . $v_id_page);
    Je vais donc rester là dessus.
    Merci pour ta réponse.

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. Utiliser une variable comme nom de table Access dans une requête SQL
    Par stsym dans le forum Macros et VBA Excel
    Réponses: 3
    Dernier message: 09/10/2011, 17h11
  2. [MySQL] Réutiliser une variable dans une requête SQL
    Par marlozo dans le forum PHP & Base de données
    Réponses: 13
    Dernier message: 30/12/2006, 08h52
  3. [SQL] Utilisation de variables dans une requête SQL
    Par heteroclite dans le forum PHP & Base de données
    Réponses: 8
    Dernier message: 07/09/2006, 22h38
  4. Passer une variable dans une requête SQL
    Par Remedy dans le forum C++
    Réponses: 2
    Dernier message: 11/05/2006, 16h48
  5. Nom de champ variable dans une requête SQL
    Par stip dans le forum ASP
    Réponses: 2
    Dernier message: 30/09/2004, 18h02

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo