获得从空表与MySQL和PHP
问题描述:
所有的行名字,我试图从一个空表中获取所有可用的行名获得从空表与MySQL和PHP
我可以做一个查询与
SELECT * FROM tablename;
,并得到与vardump
结果object(mysqli_result)#95 (5) { ["current_field"]=> int(0) ["field_count"]=> int(4) ["lengths"]=> NULL ["num_rows"]=> int(0) ["type"]=> int(0) }
有一个关于field_count的信息,但没有名字。
答
使用fetch_field()
,以获取有关列的所有信息
$query = "SELECT * FROM tablename";
if ($result = $mysqli->query($query)) {
/* Get field information for all columns */
while ($finfo = $result->fetch_field()) {
printf("Name: %s\n", $finfo->name);
printf("Table: %s\n", $finfo->table);
printf("max. Len: %d\n", $finfo->max_length);
printf("Flags: %d\n", $finfo->flags);
printf("Type: %d\n\n", $finfo->type);
}
$result->close();
}
答
SELECT `COLUMN_NAME`
FROM `INFORMATION_SCHEMA`.`COLUMNS`
WHERE `TABLE_SCHEMA`='yourdatabasename'
AND `TABLE_NAME`='yourtablename';
答
您可以使用此query
show columns from tablename
例如
<?php
$mysql_hostname = "localhost";
$mysql_user = "root";
$mysql_password = "";
$mysql_database = "user";
$conn = mysqli_connect($mysql_hostname, $mysql_user, $mysql_password,$mysql_database) or die("Could not connect database");
$result = mysqli_query($conn,"show columns from student");
$fields = array();
$i = 0;
while($result1 = mysqli_fetch_assoc($result)){
$fields[$i] = $result1['Field'];
$i++;
}
echo "<pre>";print_r($fields);
请根据您的更改database
凭据
您可以使用http://php.net/manual/en/mysqli-result.fetch-fields.php循环并获取字段名称 –
或者您可以选择它们,如果您'对数据不感兴趣并像正常结果集'SHOW COLUMNS FROM tablename' –
“row names”?行没有名字。 –