【问题标题】:Get all row names from empty table with mysql and php使用mysql和php从空表中获取所有行名
【发布时间】:2023-03-20 23:14:02
【问题描述】:

我试图从一个空表中获取所有可用的行名

我可以查询

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 的信息,但没有名称。

【问题讨论】:

  • 您可以使用php.net/manual/en/mysqli-result.fetch-fields.php循环和获取字段名称
  • 或者如果您对数据不感兴趣,您可以选择它们并像正常结果集一样检索SHOW COLUMNS FROM tablename
  • “行名”?行没有名称。
  • 不知道英文怎么称呼。也许是“行标题”?还是 Columns 是正确的词?

标签: php mysql mysqli row


【解决方案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();
}

【讨论】:

    【解决方案2】:

    你可以用这个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 凭据

    【讨论】:

      【解决方案3】:
      SELECT `COLUMN_NAME` 
      FROM `INFORMATION_SCHEMA`.`COLUMNS` 
      WHERE `TABLE_SCHEMA`='yourdatabasename' 
          AND `TABLE_NAME`='yourtablename';
      

      【讨论】:

        猜你喜欢
        • 2014-01-14
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多