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 :

Alter et existence d'un champ [MySQL]


Sujet :

PHP & Base de données

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre éclairé
    Profil pro
    Inscrit en
    Janvier 2004
    Messages
    261
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Janvier 2004
    Messages : 261
    Par défaut Alter et existence d'un champ
    J'ai un script php qui exécute différente commande SQL lors de mise à jour d'une application

    En voici une...

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    $query = "ALTER TABLE `ma_table` ADD `Num_Import` SMALLINT UNSIGNED NOT NULL DEFAULT '0'";
    Si le champ existe déjà dans la table, j'ai évidemment une erreur
    Duplicate column name 'Num_Import'

    et plantage du script et donc les commandes SQL suivantes seront non exécutées.

    Comment faites vous pour tester proprement l'existence du champ ?

  2. #2
    Membre éprouvé
    Profil pro
    Inscrit en
    Avril 2009
    Messages
    99
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2009
    Messages : 99
    Par défaut
    Bonjour,

    il faut au préalable chercher tous les champs de ta table.

    Code :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    $sql_colonnes = "SELECT column_name FROM information_schema.columns WHERE table_name = 'ma_table' ";
    $s_sql_colonnes = mysql_query($sql_colonnes);
    Ensuite, tu récupères toutes tes colonnes dans un tableau PHP :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    $tab_colonnes = array();
    while($r_sql_colonnes = mysql_fetch_array($s_sql_colonnes))
    {
        $tab_colonnes[] = $r_sql_colonnes["column_name"]
    }
    Ensuite, c'est simple, tu vérifies que ton champs n'existe pas :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    if(! in_array("ton_champs", $tab_colonnes))
    {
        //ici ton insertion de colonne
    }
    En espérant que ca peut t'aider.

  3. #3
    Membre éclairé
    Profil pro
    Inscrit en
    Janvier 2004
    Messages
    261
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Janvier 2004
    Messages : 261
    Par défaut
    Merci beaucoup

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

Discussions similaires

  1. Tester l'existence d'un champ dans une requête
    Par Reidid dans le forum Access
    Réponses: 3
    Dernier message: 23/01/2006, 22h02
  2. Tester l'existance d'un champ de formulaire .
    Par maxos75 dans le forum ASP
    Réponses: 3
    Dernier message: 21/12/2005, 12h47
  3. Tester l'existence d'un champ dans une table
    Par Oluha dans le forum MS SQL Server
    Réponses: 4
    Dernier message: 05/09/2005, 11h19
  4. existance d un champ dans un formaulaire
    Par ddmonge dans le forum Général JavaScript
    Réponses: 2
    Dernier message: 16/03/2005, 11h02
  5. Tester l'existence d'un champ
    Par Loko dans le forum Général JavaScript
    Réponses: 3
    Dernier message: 06/12/2004, 11h26

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