Gibt es eine Möglichkeit, den Spaltennamen einer Tabelle in MySQL abzurufen? mit php
301
Sie können DESCRIBE verwenden :
DESCRIBE my_table;
Oder in neueren Versionen können Sie INFORMATION_SCHEMA verwenden :
SELECT COLUMN_NAME
FROM INFORMATION_SCHEMA.COLUMNS
WHERE TABLE_SCHEMA = 'my_database' AND TABLE_NAME = 'my_table';
Oder Sie können SHOW COLUMNS verwenden :
SHOW COLUMNS FROM my_table;
SELECT TABLE_NAME FROM INFORMATION_SCHEMA.COLUMNS WHERE TABLE_SCHEMA = 'db_name' AND COLUMN_NAME = 'col_name';
desc my_table;
:-)DESC
für beschreiben kann leicht mitDESC
für absteigend verwechselt werden . Die nominelle Anzahl von Bytes, die Sie aufgrund mangelnder Lesbarkeit speichern, ist es nicht wert.Die folgenden SQL-Anweisungen sind nahezu gleichwertig:
Referenz: INFORMATION_SCHEMA COLUMNS
quelle
SHOW COLUMNS
eine Tabelle zurück, die die Spaltennamen, -typen usw. enthält, währendSELECT COLUMN NAME
nur die Spaltennamen zurückgegeben werden.Ich habe eine PDO-Funktion erstellt, die alle Spaltennamen in einem einfachen Array zurückgibt.
Die Ausgabe wird ein Array sein:
Entschuldigung für den Nekro, aber ich mag meine Funktion;)
PS Ich habe die Klasse Core nicht aufgenommen, aber Sie können Ihre eigene Klasse verwenden. DS
quelle
Diese Lösung stammt aus der Kommandozeilen-MySQL
In der folgenden Abfrage ändern Sie einfach <--DATABASE_NAME--> in Ihre Datenbank und <--TABLENAME--> in Ihren Tabellennamen, in dem Sie nur Feldwerte der DESCRIBE-Anweisung wünschen
quelle
Es gibt auch dies, wenn Sie es vorziehen:
quelle
Wie wäre es damit:
quelle
Es ist auch interessant zu bemerken, dass Sie verwenden können,
EXPLAIN table_name
was gleichbedeutend ist mitDESCRIBE table_name
undSHOW COLUMNS FROM table_name
obwohl EXPLAIN häufiger verwendet wird, um Informationen über den Abfrageausführungsplan zu erhalten.quelle
Einblick in:
quelle
Die MySQL-Funktion Beschreibungstabelle sollte Sie dahin bringen, wo Sie hin möchten (geben Sie Ihren Tabellennamen für "Tabelle" ein). Sie müssen die Ausgabe etwas analysieren, aber es ist ziemlich einfach. Wenn Sie diese Abfrage ausführen, hat das PHP-Abfrageergebnis, das auf Funktionen zugreift, die Ihnen normalerweise ein Schlüssel-Wert-Paar geben würden, die Spaltennamen als Schlüssel. Aber es ist schon eine Weile her, dass ich PHP verwendet habe, also halte mich nicht daran fest. :) :)
quelle
Sie können auch auschecken
mysql_fetch_array()
, wie in:quelle
Ich brauchte Spaltennamen als flaches Array, während die anderen Antworten assoziative Arrays zurückgaben, also verwendete ich:
$ col_names ist jetzt gleich:
quelle
Die
mysql_list_fields
Funktion könnte Sie interessieren; aber wie im Handbuch heißt es:quelle
Sie können die gesamte Tabellenstruktur mit dem folgenden einfachen Befehl abrufen.
oder Sie können folgende Abfrage verwenden.
quelle
in MySQL, um Spalten Details und Tabellenstruktur durch Folgen von Schlüsselwörtern oder Abfragen zu erhalten
1.
DESC table_name
2.
DESCRIBE table_name
3.
SHOW COLUMNS FROM table_name
4.
SHOW create table table_name;
5.
EXPLAIN table_name
quelle
quelle
das hat bei mir funktioniert ..
quelle
Ich habe ein einfaches PHP-Skript geschrieben, um Tabellenspalten über PHP abzurufen : Show_table_columns.php
Genießen!
quelle
mysqli fetch_field () hat für mich gearbeitet:
Quelle: https://www.w3schools.com/pHP/func_mysqli_fetch_field.asp
quelle