我使用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查询,但是没有运气。有谁知道如何做到这一点?提前谢谢。
答案 0 :(得分:1)
fputcsv($csv, array_keys($row));
一开始?