是否有一种方法可以在MySQL中使用PHP获取表的列名?
当前回答
调查:
mysql_query('DESCRIBE '.$table);
其他回答
你可以使用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;
或者在一行中获取带逗号的列名:
SELECT group_concat(COLUMN_NAME)
FROM INFORMATION_SCHEMA.COLUMNS
WHERE TABLE_SCHEMA = 'my_database' AND TABLE_NAME = 'my_table';
调查:
mysql_query('DESCRIBE '.$table);
mysql_list_fields函数可能会引起您的兴趣;但是,正如手册所述:
该函数不建议使用。它是 最好使用mysql_query()来 而不是使用SQL SHOW COLUMNS FROM table [LIKE 'name']语句。
如果你喜欢的话,还有这个:
mysql_query('SHOW COLUMNS FROM tableName');
我写了一个简单的php脚本,通过php获取表列: Show_table_columns.php
<?php
$db = 'Database'; //Database name
$host = 'Database_host'; //Hostname or Server ip
$user = 'USER'; //Database user
$pass = 'Password'; //Database user password
$con = mysql_connect($host, $user, $pass);
if ($con) {
$link = mysql_select_db($db) or die("no database") . mysql_error();
$count = 0;
if ($link) {
$sql = "
SELECT column_name
FROM information_schema.columns
WHERE table_schema = '$db'
AND table_name = 'table_name'"; // Change the table_name your own table name
$result = mysql_query($sql, $con);
if (mysql_query($sql, $con)) {
echo $sql . "<br> <br>";
while ($row = mysql_fetch_row($result)) {
echo "COLUMN " . ++$count . ": {$row[0]}<br>";
$table_name = $row[0];
}
echo "<br>Total No. of COLUMNS: " . $count;
} else {
echo "Error in query.";
}
} else {
echo "Database not found.";
}
} else {
echo "Connection Failed.";
}
?>
享受吧!