繁体   English   中英

从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的行的方法(这很好)。

我知道如果将它放在第一行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查询类似,但是可惜没有运气。 有谁知道如何做到这一点? 提前致谢。

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

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM