Intereting Posts
Лучшая сетка данных для php-приложения с использованием ajax Что такое автозагрузка в php? Как найти, какой PHP-скрипт утечка памяти? В методе Observer, как вы сообщаете Magento не обрабатывать код после отправленного события PHP: помощь в защите / фильтрации вызовов ajax как сохранить значение флажка в базе данных mysql, используя php Как добавить дополнительные поля не-сущности в форму сущности в Symfony2 "Exec () отключен из соображений безопасности" & "Неопределенная переменная" Какие изменения мне необходимы, чтобы Magento работал с PHP 5.3? Выполнить анализ SOAP-ответа с помощью PHP? Преобразование строки PHP в массив JSON Swiftmailer: невозможно установить соединение с узлом smtp.gmail.com Лучший вариант для вызова функциональности модели в контроллере PHP Laravel 5.1 + PHPunit – API-тест возвращает всегда неверную ошибку аргумента foreach Могу ли я запустить код MATLAB на веб-сайте?

Получить имена столбцов таблицы в mysql?

Есть ли способ захватить имя столбца таблицы в mysql? используя php

Вы можете использовать DESCRIBE :

DESCRIBE my_table; 

Или в более новых версиях вы можете использовать INFORMATION_SCHEMA :

 SELECT COLUMN_NAME FROM INFORMATION_SCHEMA.COLUMNS WHERE TABLE_SCHEMA = 'my_database' AND TABLE_NAME = 'my_table'; 

Или вы можете использовать SHOW COLUMNS :

 SHOW COLUMNS FROM my_table; 

Следующие операторы SQL почти эквивалентны:

 SELECT COLUMN_NAME FROM INFORMATION_SCHEMA.COLUMNS WHERE table_name = 'tbl_name' [AND table_schema = 'db_name'] [AND column_name LIKE 'wild'] SHOW COLUMNS FROM tbl_name [FROM db_name] [LIKE 'wild'] 

Ссылка: INFORMATION_SCHEMA COLUMNS

Я создал функцию PDO, которая возвращает все имена столбцов в простом массиве.

 public function getColumnNames($table){ $sql = "SELECT COLUMN_NAME FROM INFORMATION_SCHEMA.COLUMNS WHERE table_name = :table"; try { $core = Core::getInstance(); $stmt = $core->dbh->prepare($sql); $stmt->bindValue(':table', $table, PDO::PARAM_STR); $stmt->execute(); $output = array(); while($row = $stmt->fetch(PDO::FETCH_ASSOC)){ $output[] = $row['COLUMN_NAME']; } return $output; } catch(PDOException $pe) { trigger_error('Could not connect to MySQL database. ' . $pe->getMessage() , E_USER_ERROR); } } 

Результатом будет массив:

 Array ( [0] => id [1] => name [2] => email [3] => shoe_size [4] => likes ... ) 

Извините за necro, но мне нравится моя функция;)

PS Я не включил класс Core, но вы можете использовать свой собственный класс. DS

Это решение из командной строки mysql

 mysql>USE information_schema; 

В следующем запросе просто измените <- DATABASE_NAME -> в свою базу данных и <- TABLENAME -> на имя таблицы, где вам просто нужны значения поля инструкции DESCRIBE

 mysql> SELECT COLUMN_NAME FROM COLUMNS WHERE TABLE_SCHEMA = '<--DATABASE_NAME-->' AND TABLE_NAME='<--TABLENAME-->'; 

Как насчет этого:

 SELECT @cCommand := GROUP_CONCAT( COLUMN_NAME ORDER BY column_name SEPARATOR ',\n') FROM INFORMATION_SCHEMA.COLUMNS WHERE TABLE_SCHEMA = 'my_database' AND TABLE_NAME = 'my_table'; SET @cCommand = CONCAT( 'SELECT ', @cCommand, ' from my_database.my_table;'); PREPARE xCommand from @cCommand; EXECUTE xCommand; 

Есть и это, если вы предпочитаете:

 mysql_query('SHOW COLUMNS FROM tableName'); 

Вы также можете проверить mysql_fetch_array() , как в:

 $rs = mysql_query($sql); while ($row = mysql_fetch_array($rs)) { //$row[0] = 'First Field'; //$row['first_field'] = 'First Field'; } 

Также интересно отметить, что вы можете использовать
EXPLAIN table_name которое является синонимом DESCRIBLE table_name и SHOW COLUMS FROM table_name хотя EXPLAIN чаще используется для получения информации о плане выполнения запроса.

Посмотрите:

 mysql_query('DESCRIBE '.$table); 

Функция описания функций MySQL должна содержать вас, куда вы хотите пойти (введите имя таблицы в «таблицу»). Вам придется разобрать результат, но это довольно легко. Насколько я помню, если вы выполните этот запрос, результат запроса PHP, получающий доступ к функциям, которые обычно дают вам пару с ключом, будет иметь имена столбцов в качестве ключей. Но прошло какое-то время, так как я использовал PHP, поэтому не держите меня в этом. 🙂

Функция mysql_list_fields может вас заинтересовать; но, как говорится в руководстве:

Эта функция устарела. Предпочтительнее использовать mysql_query() для mysql_query() SQL SHOW COLUMNS FROM table [LIKE 'name'] .

это сработало для меня ..

 $sql = "desc MyTableName"; $result = @mysql_query($sql); while($row = @mysql_fetch_array($result)){ echo $row[0]."<br>"; } 

вы можете получить всю структуру таблицы, используя следующую простую команду.

 DESC TableName 

или вы можете использовать следующий запрос.

 SHOW COLUMNS FROM TableName 

в mysql для получения сведений о столбцах и структуры таблицы по следующим ключевым словам или запросам

1. DESC table_name

2. DESCRIBE table_name

3. SHOW COLUMNS FROM table_name

4. SHOW create table table_name;

5. EXPLAIN table_name

 $col = $db->query("SHOW COLUMNS FROM category"); while ($fildss = $col->fetch_array()) { $filds[] = '"{'.$fildss['Field'].'}"'; $values[] = '$rows->'.$fildss['Field'].''; } if($type == 'value') { return $values = implode(',', $values); } else { return $filds = implode(',', $filds); } 

Мне нужны имена столбцов как плоский массив, в то время как другие ответы возвращают ассоциативные массивы, поэтому я использовал:

 $con = mysqli_connect('localhost',$db_user,$db_pw,$db_name); $table = 'people'; /** * Get the column names for a mysql table **/ function get_column_names($con, $table) { $sql = 'DESCRIBE '.$table; $result = mysqli_query($con, $sql); $rows = array(); while($row = mysqli_fetch_assoc($result)) { $rows[] = $row['Field']; } return $rows; } $col_names = function get_column_names($con, $table); 

$ col_names теперь равно:

 ( [0] => name [1] => parent [2] => number [3] => chart_id [4] => type [5] => id ) 

Я написал простой скрипт php для получения столбцов таблицы через PHP: Show_table_columns.php

Наслаждайтесь!