Я хотел бы получить все имена столбцов таблицы MySQL в массиве в PHP?
Есть ли запрос для этого?
Лучше всего использовать виртуальную базу метаданных INFORMATION_SCHEMA . В частности, таблица INFORMATION_SCHEMA.COLUMNS ...
SELECT `COLUMN_NAME`
FROM `INFORMATION_SCHEMA`.`COLUMNS`
WHERE `TABLE_SCHEMA`='yourdatabasename'
AND `TABLE_NAME`='yourtablename';
Это ОЧЕНЬ мощный и может дать вам тонны информации без необходимости разбора текста (например, тип столбца, является ли столбец обнуляемым, максимальный размер столбца, набор символов и т. Д.) ...
Да, и это стандартный SQL (тогда как SHOW ...
расширение для MySQL) ...
Для получения дополнительной информации о разнице между таблицами SHOW...
и их использовании INFORMATION_SCHEMA
, ознакомьтесь с документациейINFORMATION_SCHEMA
MySQL в целом ...
SET @@SESSION.sql_mode = 'ANSI_QUOTES';
раньше, но мне это не нравится. И у меня нет проблем с обратными галочками для разграничения идентификаторов. На самом деле, они мне нравятся больше, чем двойные кавычки (двойные кавычки заставляют запрос чувствовать себя неправильно) ... Каждому свое ...Вы можете использовать следующий запрос для MYSQL:
Ниже приведен пример кода, который показывает, как реализовать приведенный выше синтаксис в php для перечисления имен столбцов:
Подробнее о выводе
SHOW COLUMNS FROM TABLE
визита: MySQL Refrence.источник
DESC TableName;
;-)Кажется, есть 2 способа:
или
Подробнее
DESCRIBE
здесь: http://dev.mysql.com/doc/refman/5.0/en/describe.htmlисточник
DESCRIBE
это просто ярлык дляSHOW COLUMNS FROM
.DESC
еще корочеDESCRIBE
!Я делал это в прошлом.
источник
Изменить : сегодня я узнал лучший способ сделать это. Пожалуйста, смотрите ответ ircmaxell.
Разобрать вывод
SHOW COLUMNS FROM table;
Вот больше об этом здесь: http://dev.mysql.com/doc/refman/5.0/en/show-columns.html
источник
Используйте
mysql_fetch_field()
для просмотра всех данных столбца. Смотрите руководство .«Предупреждение Это расширение устарело с PHP 5.5.0 и будет удалено в будущем».
источник
mysqli_num_fields()
иmysqli_fetch_field_direct()
являются обновленными методамиСтарая функция PHP «mysql_list_fields ()» устарела. Итак, сегодня лучший способ получить имена полей - это запрос «ПОКАЗАТЬ КОЛОННЫ ИЗ table_name [LIKE 'name']». Итак, вот небольшой пример:
источник
источник
Не уверен, что это то, что вы искали, но это сработало для меня:
Это возвращает простой массив имен столбцов / имен переменных в вашей таблице или массиве в виде строк, что мне и было необходимо для динамической сборки запросов MySQL. Мое разочарование было в том, что я просто не знаю, как индексировать массивы в PHP очень хорошо, поэтому я не был уверен, что делать с результатами DESC или SHOW. Надеюсь, мой ответ будет полезен для начинающих, как я!
Чтобы проверить результат:
print_r($col_names);
источник
если вы хотите проверить всю структуру таблицы с некоторыми полями, используйте этот код. В этом запросе я выбираю column_name, column_type и table_name для более подробной информации. Я использую порядок по column_type, так что я могу видеть это легко.
Если вы хотите проверить только двойной тип файла, то вы можете сделать это легко
если вы хотите проверить, в каком поле разрешен нулевой тип и т.д., вы можете использовать это
Вы хотите проверить больше, чем эта ссылка также поможет вам.
https://dev.mysql.com/doc/refman/5.7/en/columns-table.html
источник
В SHOW COLUMNS в mysql 5.1 (не 5.5) используется временная таблица дисков.
Так что в некоторых случаях это можно считать медленным. По крайней мере, он может поднять свой Created_tmp_disk_tables значение. Представьте себе одну временную таблицу дисков для каждого соединения или для каждого запроса страницы.
SHOW COLUMNS на самом деле не такой медленный, возможно, потому что он использует кеш файловой системы. Phpmyadmin говорит ~ 0,5 мс последовательно. Это ничто по сравнению с 500 мс-1000 мс, обслуживающих страницу WordPress. Но, тем не менее, бывают моменты, когда это важно. Присутствует дисковая система, вы никогда не знаете, что происходит, когда сервер занят, кеш заполнен, жесткий диск остановлен и т. Д.
Извлечение имен столбцов через SELECT * FROM ... LIMIT 1 было около ~ 0,1 мс, и он также может использовать кэш запросов.
Итак, вот мой маленький оптимизированный код для получения имен столбцов из таблицы без использования столбцов show, если это возможно:
Ноты:
источник
Попробуйте это, я лично использую это:
источник
В ГОРЯЧЕЙ:
источник
Этот вопрос старый, но я попал сюда в поисках способа найти заданный запрос по его именам полей динамическим образом (не обязательно только по полям таблицы). И поскольку люди продолжают указывать это в качестве ответа на данную задачу в других смежных вопросах, я делюсь тем, как я нашел, что это можно сделать, используя советы Гэвина Симпсона:
Это может быть легко изменено, чтобы вставить имена полей в массив.
Использование простое:
$sql="SELECT * FROM myTable LIMIT 1"
может дать вам поля любой таблицы, без необходимости использованияSHOW COLUMNS
или каких-либо дополнительных модулей PHP, если это необходимо (удаление части дампа данных).Надеюсь, это поможет кому-то еще.
источник
если вы используете php, используйте эту суть .
он может получить поля выбора полной информации без результата , и все пользовательские поля, такие как:
если выше, sql не возвращает данных, также получит имена полей aname, bname, b's other field name
всего две строчки:
источник
Этот запрос извлекает список всех столбцов в базе данных без указания имени таблицы. Возвращает список только имен столбцов:
Однако когда я запустил этот запрос в phpmyadmin, он отобразил ряд ошибок. Тем не менее, это сработало. Так что используйте его с осторожностью.
источник
Самое простое решение из всех ответов:
или
или
источник
если вам нужны только имена и типы полей (возможно, для простого копирования в Excel):
удалять
если вы хотите все типы данных
источник
Я не эксперт, но это работает для меня ..
источник
Я пробовал этот запрос в SQL Server, и это сработало для меня:
источник