是否有一种方法可以在MySQL中使用PHP获取表的列名?
当前回答
下面的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列
其他回答
你可能还想检查mysql_fetch_array(),如下所示:
$rs = mysql_query($sql);
while ($row = mysql_fetch_array($rs)) {
//$row[0] = 'First Field';
//$row['first_field'] = 'First Field';
}
下面的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列
这个解决方案来自命令行mysql
mysql>USE information_schema;
在下面的查询中,只需将<——DATABASE_NAME——>更改为您的数据库,<——TABLENAME——>更改为您的表名,其中您只需要description语句的字段值
mysql> SELECT COLUMN_NAME FROM COLUMNS WHERE TABLE_SCHEMA = '<--DATABASE_NAME-->' AND TABLE_NAME='<--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.";
}
?>
享受吧!
MySQL函数 描述表 应该把你带到你想去的地方(把你的表名输入“table”)。您必须对输出进行一些解析,但这非常简单。我记得,如果执行该查询,PHP查询结果访问函数将以列名作为键,该函数通常会提供一个键-值对。但我已经有一段时间没有使用PHP了,所以不要强迫我这么做。:)
推荐文章
- 如何使用MySQL DECIMAL?
- 修改表:如何将“允许空”属性从不空改为允许空
- 使用PHP加密和解密密码的最佳方法是什么?
- 比较两个SQL Server数据库(模式和数据)的最佳工具是什么?
- 如何实现一个好的脏话过滤器?
- 在SQL中,如何在范围中“分组”?
- PHP中的三个点(…)是什么意思?
- Guzzlehttp -如何从guzzle6得到响应的正文?
- 选项(RECOMPILE)总是更快;为什么?
- 移动一个文件到服务器上的另一个文件夹
- 设置数据库从单用户模式到多用户
- Laravel中使用雄辩的ORM进行批量插入
- oracle中的RANK()和DENSE_RANK()函数有什么区别?
- PHP 5.4调用时引用传递-容易修复可用吗?
- 警告用户/local/mysql/data目录不属于mysql用户