Requête MySQL pour obtenir les noms des colonnes?
J'aimerais obtenir toutes d'une table mysql du col noms dans un tableau en php?
Est-il une requête pour cela?
Vous devez vous connecter pour publier un commentaire.
J'aimerais obtenir toutes d'une table mysql du col noms dans un tableau en php?
Est-il une requête pour cela?
Vous devez vous connecter pour publier un commentaire.
Le meilleur moyen est d'utiliser le INFORMATION_SCHEMA de métadonnées de base de données virtuel. Plus précisément le INFORMATION_SCHEMA.Les COLONNES table...
Il est TRÈS puissant et peut vous donner des TONNES d'informations, sans avoir à analyser le texte (comme le type de colonne, si la colonne est nullable, max taille des colonnes, jeu de caractères, etc)...
Oh, et c'est la norme SQL (alors que
SHOW ...
est une base de données MySQL extension spécifique)...Pour plus d'informations à propos de la différence entre
SHOW...
et à l'aide de laINFORMATION_SCHEMA
tables, découvrez le MySQL Documentation surINFORMATION_SCHEMA
en général...SET @@SESSION.sql_mode = 'ANSI_QUOTES';
avant de la main, mais je n'aime vraiment pas ça. Et je n'ai pas de problème avec l'arrière-tiques pour l'identificateur de la délimitation. En fait, je les aime mieux que des guillemets (double quotes rend la requête sentir mauvais pour moi)... À chacun son...MySql 5.1.68-cll
, la base de données, je suis en train de est en bits, de sorte que je suis tombé en arrière à @stillstanding réponse ci-dessousVous pouvez utiliser la requête suivante pour MYSQL:
Ci-dessous l'exemple de code qui montre Comment mettre en œuvre au-dessus de la syntaxe de php pour lister les noms de colonnes:
Pour plus de Détails à propos de la sortie de
SHOW COLUMNS FROM TABLE
visite: MySQL Refrence.DESC TableName;
😉Semble qu'il y a 2 façons:
ou
Plus sur
DESCRIBE
ici: http://dev.mysql.com/doc/refman/5.0/en/describe.htmlDESCRIBE
est juste un raccourci pourSHOW COLUMNS FROM
.DESC
est encore plus court de la main pourDESCRIBE
!Je l'ai fait dans le passé.
Modifier: aujourd'Hui j'ai appris que la meilleure manière de faire ceci. Veuillez voir ircmaxell de réponse.
Analyser les données en sortie de
SHOW COLUMNS FROM table;
Voici plus d'informations à ce sujet ici: http://dev.mysql.com/doc/refman/5.0/en/show-columns.html
Une vieille fonction PHP "mysql_list_fields()" est obsolète. Donc, aujourd'hui, la meilleure façon d'obtenir des noms de domaines est une requête "AFFICHER les COLONNES DE nom_table [COMME 'nom']". Donc, voici un petit exemple:
Utilisation
mysql_fetch_field()
pour afficher toutes les données de la colonne. Voir manuel."Avertissement
Cette extension est obsolète depuis PHP 5.5.0, et sera supprimée dans le futur."
mysqli_num_fields()
etmysqli_fetch_field_direct()
sont les méthodes de mise à jourlorsque vous voulez vérifier votre structure de la table avec quelques déposé ensuite utiliser ce code. Dans cette requête, je sélectionne column_name,column_type et table_name pour plus de détails . J'utilise la commande par column_type afin que je puisse le voir facilement.
Si vous voulez seulement vérifier le type double déposée alors vous pouvez le faire facilement
si vous voulez vérifier le champ autoriser les valeurs null type etc ensuite, vous pouvez utiliser cette
vous voulez vérifier plus de thik lien aussi vous aider.
https://dev.mysql.com/doc/refman/5.7/en/columns-table.html
AFFICHER les COLONNES dans mysql 5.1 (pas 5.5) utilise un disque temporaire de la table.
De sorte qu'il peut être considéré comme lent pour certains cas. Au moins, on peut remonter votre created_tmp_disk_tables valeur. Imaginez un disque temporaire d'une table par connexion ou pour chaque demande de page.
AFFICHER les COLONNES n'est pas vraiment si lent, probablement parce qu'il utilise le cache du système de fichiers. Phpmyadmin dit ~0,5 ms de manière cohérente. Ce n'est rien comparé à 500ms-1000ms de servir une page wordpress. Mais encore, il y a des moments qui comptent. Il est un disque de système de participation, vous ne savez jamais ce qui se passe quand le serveur est occupé, le cache est plein, le disque dur est bloqué etc.
De la récupération des noms de colonne par SELECT * from ... la LIMITE de 1 était autour de ~0,1 ms, et il peut utiliser la mise en cache de requêtes ainsi.
Donc voici mon petit code optimisé pour obtenir des noms de colonnes d'une table, sans l'aide de afficher les colonnes si possible:
Notes:
Ne sais pas si c'est ce que vous cherchez, mais cela a fonctionné pour moi:
Qui retourne un tableau simple de la colonne des noms /noms de variables dans votre table ou un tableau de chaînes de caractères, qui est ce que j'avais besoin de créer dynamiquement des requêtes MySQL. Ma frustration est que je ne sais pas comment faire pour indexer des tableaux en PHP très bien, donc je n'étais pas sûr de quoi faire avec les résultats de DESC ou un SPECTACLE. Espère que ma réponse est utile pour les débutants comme moi!
Pour vérifier le résultat:
print_r($col_names);
Essayez celui-ci, personnellement, je les utiliser:
DANS WORDPRESS:
Cette question est vieux, mais je suis ici à la recherche d'un moyen de trouver une requête donnée de ses noms de champ dans une dynamique de moyen (pas forcément uniquement les champs d'une table). Et puisque les gens garder de montrer ce que la réponse à cette tâche donnée dans d'autres questions, je suis le partage de la façon que j'ai trouvée, il peut être fait, à l'aide de Gavin Simpson conseils:
Cela peut être facilement modifiées pour insérer les noms de champ dans un tableau.
À l'aide d'un simple:
$sql="SELECT * FROM myTable LIMIT 1"
peut vous donner les champs d'une table, sans avoir à utiliserSHOW COLUMNS
toute autre module php, si nécessaire (en supprimant les données de vidage de la partie).J'espère que cela aide quelqu'un d'autre.
si vous utilisez php, utilisez ce gist.
il peut obtenir des champs plein d'infos sans résultat,et tous les champs personnalisés tels que:
si sql ci-dessus retournera pas de données,permettra aussi d'obtenir les noms de champ anom, anom, b est l'autre nom du champ
seulement deux ligne:
Cette requête récupère une liste de toutes les colonnes dans une base de données sans avoir à spécifier un nom de table. Elle retourne une liste de seulement les noms de colonne:
Cependant, quand j'ai couru cette requête dans phpmyadmin, il affiche une série d'erreurs. Néanmoins, il a travaillé. - À utiliser avec prudence.
La solution la plus simple de toutes les Réponses:
ou
ou
je pas un expert, mais cela fonctionne pour moi..
si vous avez besoin seulement les noms de champ et les types (peut-être pour faciliter le copier-coller dans Excel):
supprimer
si vous voulez que tous les types de données