Есть ли способ захватить имя столбца таблицы в mysql? с помощью PHPПолучить имена столбцов таблицы в mysql?
ответ
Вы можете использовать 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;
Посмотрите на: функции
mysql_query('DESCRIBE '.$table);
для MySQL описать таблицу должны получить, где вы хотите пойти (поместить имя таблицы для «таблицы»). Вам придется разбирать результаты, но это довольно легко. Насколько я помню, если вы выполните этот запрос, результат запроса PHP, получающий доступ к функциям, которые обычно дают вам пару с ключом, будет иметь имена столбцов в качестве ключей. Но прошло какое-то время, так как я использовал PHP, поэтому не держите меня в этом. :)
Есть несколько хороших документов на php.net в http://us3.php.net/manual/en/function.mysql-list-fields.php – dannysauer
Следующие 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
Там же, если вы предпочитаете:
mysql_query('SHOW COLUMNS FROM tableName');
mysql_list_fields
функция может заинтересовать; но, как указано в руководстве:
Эта функция устарела. Это предпочтительнее использовать
mysql_query()
- выдать инструкцию SQLSHOW COLUMNS FROM table [LIKE 'name']
.
Как работает эта функция, если она не выдает SQL-запрос на сервер? Почему он устарел? – Pacerier
Вы можете также вес муравей проверить mysql_fetch_array()
, как:
$rs = mysql_query($sql);
while ($row = mysql_fetch_array($rs)) {
//$row[0] = 'First Field';
//$row['first_field'] = 'First Field';
}
Я сделал функцию 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
...)
Извините за некро, но мне нравится моя функция;)
P.S. Я не включил класс Core, но вы можете использовать свой собственный класс. D.S.
Это решение из командной строки MySQL
mysql>USE information_schema;
В ниже запросе просто изменить < --DATABASE_NAME -> к базе данных и < --TABLENAME -> к вашему имени таблицы, где вы просто хотите поле значения ОПИСАТЬ Заявление о
mysql> SELECT COLUMN_NAME FROM COLUMNS WHERE TABLE_SCHEMA = '<--DATABASE_NAME-->' AND TABLE_NAME='<--TABLENAME-->';
Другие ответы уже упоминали об этом .......... – Pacerier
интересно также отметить, что вы можете использовать
EXPLAIN table_name
который является синонимом DESCRIBE table_name
и SHOW COLUMNS FROM table_name
, хотя EXPLAIN чаще используется для получения информации о плане выполнения запроса.
Как об этом:
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;
это работало для меня ..
$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
SHOW COLUMNS FROM table_name
3.
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
Наслаждайтесь!
Пожалуйста, разместите фактический ответ здесь и используйте только свой реестр в качестве резервной копии/ссылки – ChrisF
- 1. Получить имена столбцов из таблицы MySQL
- 2. LINQ: Получить имена столбцов таблицы
- 3. Как получить имена столбцов в MYSQL
- 4. mysql получить имена столбцов таблицы в алфавитном порядке
- 5. Получить имена полей таблицы mysql в ZF2
- 6. MySQL ORDER BY имена столбцов таблицы Другой
- 7. Mysql получить имена столбцов, а затем результаты
- 8. MySQL использует имена столбцов из другой таблицы
- 9. MySQL Сводные таблицы подстрока имена столбцов
- 10. Настройка MySQL имена столбцов
- 11. C++ MySQL - Не удалось получить имена столбцов
- 12. Получить имена столбцов таблицы и значения
- 13. Как получить отобранные имена столбцов из таблицы
- 14. Просто получить имена столбцов из улья таблицы
- 15. Hive - получить имена столбцов
- 16. MySQL присоединиться и имена столбцов
- 17. PLSQL получить имена столбцов по значению таблицы
- 18. Получить имена столбцов
- 19. Как получить имена столбцов из таблицы в SQL Server?
- 20. Как напечатать имена столбцов mysql в файле
- 21. Получить имена столбцов в подзапросе
- 22. Как получить имена столбцов из mysql?
- 23. Listbox показать имена столбцов таблицы
- 24. Получить различные имена столбцов в двух таблицах MySQL
- 25. Измените имена столбцов в MySQL
- 26. Создать имена столбцов из таблицы MySQL в Python
- 27. MYSQL Показать указанные имена столбцов
- 28. Как получить имена столбцов двух таблиц в mysql?
- 29. Получить только имена столбцов, как в массиве mysql
- 30. выбрать имена столбцов текущей таблицы
DESCRIBE на самом деле является ярлыком для SHOW COLUMNS (http: //dev.mysql.com/doc/refman/5.0/en/describe.html) – svens
@svens yeah, DESCRIBES проще, SHOW COLUMNS дает вам больше опций – Greg
Я бы проголосовал за версию Information_Schema, так как этот синтаксис поддерживается большинством основных баз данных. Лучше всего учиться только одному, если нужно. – Kibbee