我想获取数据库中特定表的所有列名。我搜索了一下,发现了这样的查询:
SELECT COLUMN_NAME FROM INFORMATION_SCHEMA.Columns where TABLE_NAME = 'auto'因此,我编写了这个PHP来处理它:
<?php
$query = "SELECT COLUMN_NAME FROM INFORMATION_SCHEMA.Columns where TABLE_NAME = 'auto'";
$result = mysql_query($query);
$i = 0;
while($row = mysql_fetch_array($result, MYSQL_ASSOC)) {
echo "<p>".$row[$i]."</p>";
$i++;
}
?>它什么也不回。我尝试不通过删除$i变量来使用数组索引,但随后它只返回Array的列表作为结果。
有人知道怎么做吗?
我也试过:
<?php
$query = "SELECT COLUMN_NAME FROM INFORMATION_SCHEMA.Columns where TABLE_NAME = 'auto'";
$result = mysql_query($query);
$i = 0;
print_r($result);
?>Resource id #5回答说。所以它必须是SQL查询。
这完全毁了这一页。
发布于 2012-09-03 11:40:16
您正在尝试获取一个相关的数组,而不是一个数字数组。
while($row = mysql_fetch_array($result))默认情况下,关联数组是列名数组。
您还可以从表中获取列的详细信息,而不需要访问信息模式(在MySQL5.1到5.4ish中性能很差),方法是使用show columns from yourTableName;
mysql> show columns from first;
+-------+----------+------+-----+---------+-------+
| Field | Type | Null | Key | Default | Extra |
+-------+----------+------+-----+---------+-------+
| id | int(3) | YES | | NULL | |
| title | tinytext | YES | | NULL | |
+-------+----------+------+-----+---------+-------+
2 rows in set (0.00 sec)发布于 2012-09-03 11:46:37
我是遗漏了什么,还是忘记了显示列函数?
发布于 2012-09-03 11:43:38
<?php
/* The users table consists of three fields:
* user_id
* username
* password.
*/
$link = mysql_connect('localhost', 'mysql_user', 'mysql_password');
if (!$link) {
die('Could not connect to MySQL server: ' . mysql_error());
}
$dbname = 'mydb';
$db_selected = mysql_select_db($dbname, $link);
if (!$db_selected) {
die("Could not set $dbname: " . mysql_error());
}
$res = mysql_query('select * from users', $link);
echo mysql_field_name($res, 0) . "\n";
echo mysql_field_name($res, 2);
?>上面的示例将输出:
user_id密码
https://stackoverflow.com/questions/12247103
复制相似问题