我想让所有的mysql表的col名称在php数组?

对此有疑问吗?


当前回答

你可以使用以下查询MYSQL:

SHOW `columns` FROM `your-table`;

下面是示例代码,它展示了如何在php中实现上述语法来列出列的名称:

$sql = "SHOW COLUMNS FROM your-table";
$result = mysqli_query($conn,$sql);
while($row = mysqli_fetch_array($result)){
    echo $row['Field']."<br>";
}

关于SHOW COLUMNS FROM TABLE输出的详细信息请访问:MySQL参考。

其他回答

如果您使用php,请使用这个要点。

它可以获得选择字段的完整信息而没有结果,以及所有自定义字段,如:

SELECT a.name aname, b.name bname, b.* 
FROM table1 a LEFT JOIN table2 b
ON a.id = b.pid;

如果上面SQL没有返回数据,还会得到字段名aname, bname, b的其他字段名

只有两行:

$query_info = mysqli_query($link, $data_source);
$fetch_fields_result = $query_info->fetch_fields();

你可以使用以下查询MYSQL:

SHOW `columns` FROM `your-table`;

下面是示例代码,它展示了如何在php中实现上述语法来列出列的名称:

$sql = "SHOW COLUMNS FROM your-table";
$result = mysqli_query($conn,$sql);
while($row = mysqli_fetch_array($result)){
    echo $row['Field']."<br>";
}

关于SHOW COLUMNS FROM TABLE输出的详细信息请访问:MySQL参考。

此查询获取数据库中所有列的列表,而无需指定表名。它返回一个只包含列名的列表:

SELECT COLUMN_NAME
  FROM INFORMATION_SCHEMA.COLUMNS
  WHERE table_schema = 'db_name'

但是,当我在phpmyadmin中运行这个查询时,它显示了一系列错误。尽管如此,它还是奏效了。所以要谨慎使用。

这将生成一个带逗号分隔符的列名字符串:

    SELECT CONCAT('(',GROUP_CONCAT(`COLUMN_NAME`),')') 
    FROM `INFORMATION_SCHEMA`.`COLUMNS` 
    WHERE `TABLE_SCHEMA`='database_name' 
    AND `TABLE_NAME`='table_name';

这个问题很老了,但我在这里寻找一种方法,以动态的方式查找给定查询的字段名(不一定只是表的字段)。由于人们在其他相关问题中一直把这个作为给定任务的答案,我在这里分享我发现的方法,使用加文·辛普森的技巧:

//Function to generate a HTML table from a SQL query
function myTable($obConn,$sql)
{
    $rsResult = mysqli_query($obConn, $sql) or die(mysqli_error($obConn));
    if(mysqli_num_rows($rsResult)>0)
    {
        //We start with header. >>>Here we retrieve the field names<<<
        echo "<table width=\"100%\" border=\"0\" cellspacing=\"2\" cellpadding=\"0\"><tr align=\"center\" bgcolor=\"#CCCCCC\">";
        $i = 0;
        while ($i < mysqli_num_fields($rsResult)){
           $field = mysqli_fetch_field_direct($rsResult, $i);
           $fieldName=$field->name;
           echo "<td><strong>$fieldName</strong></td>";
           $i = $i + 1;
        }
        echo "</tr>"; 
        //>>>Field names retrieved<<<

        //We dump info
        $bolWhite=true;
        while ($row = mysqli_fetch_assoc($rsResult)) {
            echo $bolWhite ? "<tr bgcolor=\"#CCCCCC\">" : "<tr bgcolor=\"#FFF\">";
            $bolWhite=!$bolWhite;
            foreach($row as $data) {
                echo "<td>$data</td>";
            }
            echo "</tr>";
        }
        echo "</table>";
    }
}

这可以很容易地修改为在数组中插入字段名。

使用简单的:$sql="SELECT * FROM myTable LIMIT 1"可以给你任何表的字段,而不需要使用SHOW COLUMNS或任何额外的php模块,如果需要(删除数据转储部分)。

希望这能帮助到其他人。