从mysql中的自定义查询输出列名


output column names from custom query in mysql

我使用php为自定义sql查询创建了一个小的输入表单。我已经能够将结果输出到csv表单,但是在将标题包含在输出文件中时遇到了一些问题。

我在创建一个头行数组时并没有遇到任何问题,但我希望能够从查询本身创建头。

这就是我使用过的:

$output = fopen('php://output', 'w');

//get query data  
$qs = $_GET['custom'];
$rs  = mysqli_query($dbc, $qs)
  or die ('Error querying database');     

header('Content-Type: text/csv; charset=utf-8');
header('Content-Disposition: attachment; filename=query.csv');
$csv = fopen('php://output', 'w');
while ($row = mysqli_fetch_assoc($rs)) {
    fputcsv($csv, $row);
}
fclose($csv);

我想要的是在查询内容之前输入select中的行(通过fine)。

我知道如果我把它放在第一行fputcsv之前,这将适用于设置的标题:

fputcsv($csv, array('col1', 'col2', 'col3', [etc...]  ));

但这只是因为我定义了数组中的字段。

我正在寻找的是识别查询中的列并将其用作列标题的方法。

我一直在尝试使用一个查询来获取列名,然后将其作为数组提供,但我似乎无法使其工作。类似这样的东西:

SELECT column_name
FROM information_schema.columns
WHERE table_schema = 'database_name'
and column_name in ($query)

其中$query变量类似于上面的$qs查询,但遗憾的是运气不好。有人知道怎么做吗?提前谢谢。

fputcsv($csv, array_keys($row));开头?