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.