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](https://lookmandesign.net/wp-content/uploads/2021/01/sql-connaitre-les-colonnes-d-une-table-avec-une-requete-sql-1.jpg)
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