如何使用mysqli从选择查询的结果中获取列名

时间:2018-03-07 19:10:52

标签: php mysql mysqli

我需要创建一个脚本来遍历MySQL的结果,并使用mysqli自动返回在查询中选择的列名。 注意:我将使用一些伪代码来更轻松地解释我的观点。这显然是错误的

例如CLIENTS表,其中包含列:

ID, NAME, EMAIL, TELEPHONE, ADDRESS

如果我有疑问:

$result =  $mysqli->query("SELECT * FROM CLIENTS WHERE ID = 1");

我需要脚本返回ID NAME,EMAIL,TELEPHONE,ADDRESS。

伪码:

foreach ($result as $column => $value){
   echo $column
}

结果:

ID, NAME, EMAIL, TELEPHONE, ADDRESS,

如果查询只是

,则相同
$result =  $mysqli->query("SELECT NAME as N, EMAIL as E FROM CLIENTS WHERE ID = 1");

脚本应仅返回:

N, E,

想法?

2 个答案:

答案 0 :(得分:4)

这不是一个完整的工作片段,而是朝着正确的方向点头。

$sql = "SELECT * FROM clients WHERE id = 1";
$res = $mysqli->query($sql);
$row = $res->fetch_assoc();
$colNames = array_keys($row);

现在$row包含一个关联数组,其中包含第一个选定行的所有列名和变量。如果您只想要列名称,则可以在$colNames中找到它们,然后就完成了。

使用

处理所有数据
while ($row = $res->fetch_assoc()) {
    ...
}

答案 1 :(得分:1)

我认为你也可以在PHP中使用这个查询查询数据库:

SELECT COLUMN_NAME FROM INFORMATION_SCHEMA.COLUMNS WHERE TABLE_SCHEMA = 'my_database' AND TABLE_NAME = 'my_table';