Chciałbym przenieść wszystkie nazwy col tabeli mysql do tablicy w php?
Czy jest na to pytanie?
Najlepszym sposobem jest użycie wirtualnej bazy danych metadanych INFORMACJE_SCHEMA . W szczególności tabela INFORMACJE_SCHEMA.COLUMNS ...
SELECT `COLUMN_NAME`
FROM `INFORMATION_SCHEMA`.`COLUMNS`
WHERE `TABLE_SCHEMA`='yourdatabasename'
AND `TABLE_NAME`='yourtablename';
Jest BARDZO potężny i może dostarczyć TONI informacji bez konieczności analizowania tekstu (np. Typ kolumny, czy kolumna ma wartość zerową, maksymalny rozmiar kolumny, zestaw znaków itp.) ...
Aha, i to jest standardowy SQL (podczas gdy SHOW ...
jest to rozszerzenie specyficzne dla MySQL) ...
Aby uzyskać więcej informacji na temat różnicy między tabelami SHOW...
i korzystania z nich INFORMATION_SCHEMA
, zapoznaj się ogólnie z dokumentacjąINFORMATION_SCHEMA
MySQL ...
SET @@SESSION.sql_mode = 'ANSI_QUOTES';
przed ręką, ale tak naprawdę to nie lubię. I nie mam problemu z tyknięciami wstecznymi dla delimitacji identyfikatora. W rzeczywistości lubię je bardziej niż podwójne cudzysłowy (podwójne cudzysłowy sprawiają, że zapytanie wydaje mi się złe) ... Do każdego z nich ...Możesz użyć następującego zapytania dla MYSQL:
Poniżej znajduje się przykładowy kod, który pokazuje jak zaimplementować powyższą składnię w php, aby wyświetlić nazwy kolumn:
Szczegółowe informacje na temat wyników
SHOW COLUMNS FROM TABLE
wizyty: MySQL Refrence.źródło
DESC TableName;
;-)Wydaje się, że istnieją 2 sposoby:
lub
Więcej
DESCRIBE
tutaj: http://dev.mysql.com/doc/refman/5.0/en/describe.htmlźródło
DESCRIBE
to tylko skrót doSHOW COLUMNS FROM
.DESC
jest nawet krótszy dlaDESCRIBE
!Zrobiłem to w przeszłości.
źródło
Edycja : Dzisiaj nauczyłem się lepszego sposobu robienia tego. Zobacz odpowiedź ircmaxell.
Analizuj dane wyjściowe z
SHOW COLUMNS FROM table;
Oto więcej na ten temat tutaj: http://dev.mysql.com/doc/refman/5.0/en/show-columns.html
źródło
Służy
mysql_fetch_field()
do wyświetlania wszystkich danych kolumn. Zobacz instrukcję .„Ostrzeżenie To rozszerzenie jest nieaktualne od PHP 5.5.0 i zostanie usunięte w przyszłości.”
źródło
mysqli_num_fields()
imysqli_fetch_field_direct()
są zaktualizowane metodyStara funkcja PHP „mysql_list_fields ()” jest przestarzała. Tak więc dzisiaj najlepszym sposobem na uzyskanie nazw pól jest zapytanie „POKAŻ KOLUMNY Z nazwy_tabeli [JAK” nazwa ”]”. Oto mały przykład:
źródło
źródło
Nie jestem pewien, czy tego właśnie szukałeś, ale działało to dla mnie:
Zwraca prostą tablicę nazw kolumn / nazw zmiennych w tabeli lub tablicy jako ciągi, co jest tym, czego potrzebowałem, aby dynamicznie budować zapytania MySQL. Moją frustracją było to, że po prostu nie wiem, jak bardzo dobrze indeksować tablice w PHP, więc nie byłem pewien, co zrobić z wynikami DESC lub SHOW. Mam nadzieję, że moja odpowiedź jest pomocna dla początkujących takich jak ja!
Aby sprawdzić wynik:
print_r($col_names);
źródło
jeśli chcesz sprawdzić całą strukturę tabeli z niektórymi plikami, użyj tego kodu. W tym zapytaniu wybieram nazwę kolumny, typ kolumny i nazwę tabeli, aby uzyskać więcej informacji. Korzystam z sortowania według typu kolumny, więc mogę to łatwo zobaczyć.
Jeśli chcesz sprawdzić tylko dwa typy plików, możesz to zrobić z łatwością
jeśli chcesz sprawdzić, które pole zezwala na typ zerowy itp., możesz użyć tego
chcesz sprawdzić więcej niż link, który Ci również pomoże.
https://dev.mysql.com/doc/refman/5.7/en/columns-table.html
źródło
POKAŻ KOLUMNY w mysql 5.1 (nie 5.5) używa tymczasowej tabeli dysków.
W niektórych przypadkach można to uznać za wolne. Przynajmniej może podbić swoją created_tmp_disk_tables wartość. Wyobraź sobie jedną tymczasową tabelę dyskową na połączenie lub na każde żądanie strony.
POKAŻ KOLUMNY nie jest tak powolne, prawdopodobnie dlatego, że używa pamięci podręcznej systemu plików. Phpmyadmin mówi ~ 0,5 ms konsekwentnie. To nic w porównaniu z 500ms-1000ms obsługi strony wordpress. Ale wciąż są chwile, które mają znaczenie. Zaangażowany jest system dyskowy, nigdy nie wiadomo, co się stanie, gdy serwer jest zajęty, pamięć podręczna jest pełna, dysk twardy jest zablokowany itp.
Pobieranie nazw kolumn za pomocą SELECT * FROM ... LIMIT 1 trwało około ~ 0,1 ms i może również używać pamięci podręcznej zapytań.
Oto mój mały zoptymalizowany kod do pobierania nazw kolumn z tabeli, bez używania kolumn show, jeśli to możliwe:
Uwagi:
źródło
Wypróbuj ten, którego osobiście używam:
źródło
W WORDPRESS:
źródło
To pytanie jest stare, ale znalazłem tutaj sposób na znalezienie danego zapytania w jego nazwach pól w sposób dynamiczny (niekoniecznie tylko pola tabeli). A ponieważ ludzie wciąż wskazują to jako odpowiedź na to zadanie w innych powiązanych pytaniach, dzielę się sposobem, w jaki według mnie można to zrobić, korzystając ze wskazówek Gavina Simpsona:
Można to łatwo zmodyfikować, aby wstawić nazwy pól do tablicy.
Używając prostego:
$sql="SELECT * FROM myTable LIMIT 1"
może dać ci pola dowolnej tabeli, bez potrzeby użyciaSHOW COLUMNS
lub dodatkowego modułu php, jeśli to konieczne (usunięcie części zrzutu danych).Mam nadzieję, że pomoże to komuś innemu.
źródło
jeśli używasz php, użyj tego sens .
może uzyskać pełne informacje o wybranych polach bez rezultatu oraz wszystkie pola niestandardowe, takie jak:
jeśli powyżej sql nie zwróci danych, otrzyma także nazwy pól aname, bname, b inne nazwy pól
tylko dwie linie:
źródło
To zapytanie pobiera listę wszystkich kolumn w bazie danych bez konieczności określania nazwy tabeli. Zwraca listę tylko nazw kolumn:
Jednak gdy uruchomiłem to zapytanie w phpmyadmin, wyświetliło się szereg błędów. Niemniej jednak zadziałało. Dlatego używaj go ostrożnie.
źródło
Najprostsze rozwiązanie spośród wszystkich odpowiedzi:
lub
lub
źródło
jeśli potrzebujesz tylko nazw i typów pól (być może do łatwego wklejenia do Excela):
usunąć
jeśli chcesz wszystkie typy danych
źródło
nie jestem ekspertem, ale to działa dla mnie ..
źródło
Próbowałem tego zapytania w SQL Server i to zadziałało dla mnie:
źródło