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

时间:2015-02-27 20:41:49

标签: php 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中输入行的方法(通过罚款)。

我知道如果我把它放在第一个fputcsv行之前,它将适用于set头:

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查询,但是没有运气。有谁知道如何做到这一点?提前谢谢。

1 个答案:

答案 0 :(得分:1)

fputcsv($csv, array_keys($row));一开始?