Connaître les colonnes d’une table avec une requête sql

Connaître les colonnes d'une table avec une requête sql

Il arrive souvent des situations où nous sommes dans l’incapacité d’avoir accès à PhpMyAdmin pour connaître les colonnes d’une table sur laquelle on souhaite travailler par exemple. Avec une requête SQL, il est possible d’avoir cela.

Connectons-nous à notre base : [+ de détails ici]
Remplacez nom_base, utilisateur et mot_de_passe par vos propres valeurs

<?php 
// connexion à la base de données
$bd = new PDO('mysql:host=localhost;dbname=nom_base', 'utilisateur', 'mot_de_passe');
?>

Imaginons maintenant que nous avons par exemple cette table nommée voitures en base de données et que nous ignorons complètement toutes les colonnes que cette table contient :

Exemple de table dans phpMyAdmin

Essayons l’une des deux requêtes suivantes. Nous aurons le même résultat de toute façon :

<?php
    $resultats = $bd->query('DESCRIBE voitures')->fetchAll();
?>

ou

<?php
    $resultats = $bd->query('SHOW COLUMNS FROM voitures')->fetchAll();
?>

Pour voir le résultat, il suffit de faire :

<?php 
    print_r($resultats);
?>

Et nous avons ce résultat :

Array ( 
    [0] => Array ( [Field] => id [0] => id [Type] => int(11) [1] => int(11) [Null] => NO [2] => NO [Key] => PRI [3] => PRI [Default] => [4] => [Extra] => auto_increment [5] => auto_increment ) 
    [1] => Array ( [Field] => marque [0] => marque [Type] => varchar(100) [1] => varchar(100) [Null] => NO [2] => NO [Key] => [3] => [Default] => [4] => [Extra] => [5] => ) 
    [2] => Array ( [Field] => couleur [0] => couleur [Type] => varchar(100) [1] => varchar(100) [Null] => NO [2] => NO [Key] => [3] => [Default] => [4] => [Extra] => [5] => ) 
    [3] => Array ( [Field] => annee [0] => annee [Type] => int(11) [1] => int(11) [Null] => NO [2] => NO [Key] => [3] => [Default] => [4] => [Extra] => [5] => ) 
    [4] => Array ( [Field] => assurance [0] => assurance [Type] => datetime [1] => datetime [Null] => YES [2] => YES [Key] => [3] => [Default] => [4] => [Extra] => [5] => ) 
    [5] => Array ( [Field] => visite_technique [0] => visite_technique [Type] => datetime [1] => datetime [Null] => YES [2] => YES [Key] => [3] => [Default] => [4] => [Extra] => [5] => ) 
)

Il est vrai que le résultat présenté ainsi est vraiment difficile à lire. On va alors le parcourir :

<?php 
    foreach ($resultats as $key => $value) {
        echo 'Champ : '.$value['Field'].' | Type : '.$value['Type'].'<br />';
    }
?>

Nous parcourons chaque ligne du résultat de la requête. Chaque ligne nous retourne un tableau ($value) et nous affichons le nom de la colonne (Field) et son type (Type).

Colonne : id | Type : int(11)
Colonne : marque | Type : varchar(100)
Colonne : couleur | Type : varchar(100)
Colonne : annee | Type : int(11)
Colonne : assurance | Type : datetime
Colonne : visite_technique | Type : datetime

Laisser un commentaire