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 :

Tester si un champ est auto incrémenté


Sujet :

PHP & Base de données

  1. #1
    Membre à l'essai
    Profil pro
    Inscrit en
    Novembre 2007
    Messages
    21
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Novembre 2007
    Messages : 21
    Points : 18
    Points
    18
    Par défaut Tester si un champ est auto incrémenté
    Bonjour.

    Bonjour. Je coince sur un problème depuis pas mal de temps. Je crées une fonction qui me retourne un schéma en tableau associatif d'une table d'une base de donnée au sein d'une classe (mais ce dernier point n'est pas important). Dedans j'y indique le type de chacun des champs, et toute information qui peut s'avérer intéressante...

    Voici le code :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
        public function schemaTable($nom_table)
        {
            // recherche de la liste des attributs de la table
            $liste_attr = mysql_list_fields($this->nom_base, $nom_table, $this->connexion);
     
            if(!$liste_attr) throw new Exception("Probleme d'analyse de $nom_table");
     
            // recherche des attributs et stockage dans le tableau suivant
            for($i = 0; $i < mysql_num_fields($liste_attr); $i++)
            {
                $nom = mysql_field_name($liste_attr, $i);
                $schema[$nom]['longueur'] = mysql_field_len($liste_attr, $i);
                $schema[$nom]['type'] = mysql_field_type($liste_attr, $i);
                $schema[$nom]['cle_primaire'] = substr_count(mysql_field_flags($liste_attr, $i), "primary_key");
                $schema[$nom]['not_null'] = substr_count(mysql_field_flags($liste_attr, $i), "not_null");
                $schema[$nom]['defaut'] = substr_count(mysql_field_flags($liste_attr, $i), "default");
                $schema[$nom]['unique'] = substr_count(mysql_field_flags($liste_attr, $i), "unique");
                $schema[$nom]['auto_increment'] = substr_count(mysql_field_flags($liste_attr, $i), "AUTO_INCREMENT");
            }
            return $schema;
        }
    Le ...

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
        $schema[$nom]['auto_increment'] = substr_count(mysql_field_flags($liste_attr, $i),
    ... me semblait suffisant, pourtant le tableau m'indique à chaque fois [auto_increment]=>0 même si le champ est en auto_increment.

    Quelqu'un aurait une idée ?

    Merci d'avance.

  2. #2
    Membre confirmé
    Profil pro
    Inscrit en
    Août 2005
    Messages
    514
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Août 2005
    Messages : 514
    Points : 631
    Points
    631
    Par défaut
    Bonjour,
    vous faites un clone de la commande :

    Code Commande MySQL : Sélectionner tout - Visualiser dans une fenêtre à part
    SHOW CREATE TABLE `votre_table`;

    Et de SCHEMA_NAME sur MySQL 5? Ou vous apportez des informations supplémentaires? Parce que moi, je me serais basé sur ces commandes pour faire mon string2array.

    Cordialement,
    DaRiaN.

Discussions similaires

  1. Comment tester si un champ est un nombre
    Par the kikouyou dans le forum Langage SQL
    Réponses: 13
    Dernier message: 17/07/2014, 14h57
  2. "Nettoyer" les champs Identity auto-incrément
    Par rohstev dans le forum MS SQL Server
    Réponses: 5
    Dernier message: 25/10/2006, 09h51
  3. [TSQL]tester si un champs est numeric
    Par Bryce3D dans le forum Sybase
    Réponses: 3
    Dernier message: 05/10/2006, 16h41
  4. Champs virtuel auto incrémenté dans une vue
    Par berceker united dans le forum MS SQL Server
    Réponses: 1
    Dernier message: 19/06/2006, 14h33
  5. Tester si un champ est NULL
    Par titititi007 dans le forum MS SQL Server
    Réponses: 3
    Dernier message: 19/06/2003, 10h17

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