2016-06-07 25 views
1

所有的行名字,我试图从一个空表中获取所有可用的行名获得从空表与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的信息,但没有名字。

+0

您可以使用http://php.net/manual/en/mysqli-result.fetch-fields.php循环并获取字段名称 –

+0

或者您可以选择它们,如果您'对数据不感兴趣并像正常结果集'SHOW COLUMNS FROM tablename' –

+1

“row names”?行没有名字。 –

回答

1

使用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(); 
} 
0
SELECT `COLUMN_NAME` 
FROM `INFORMATION_SCHEMA`.`COLUMNS` 
WHERE `TABLE_SCHEMA`='yourdatabasename' 
    AND `TABLE_NAME`='yourtablename'; 
1

您可以使用此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凭据