【发布时间】:2019-05-10 13:30:51
【问题描述】:
我正在构建一个报告工具,用户可以在其中输入 SQL 查询,该工具将以 CSV 文件的形式返回结果。除了只是写入一个 CSV 文件之外,我还需要在这里执行一些额外的逻辑。所以SELECT INTO OUTFILE 对我不起作用。
我知道执行任意用户提供的 SQL 查询是不好的,但是这个工具将只在内部使用,所以安全性不应该是一个问题。此外,我将其限制为仅选择查询。
现在当我以 CSV 格式导出数据时,我还想将查询的列名输出为 CSV 文件中的第一行。
所以我的问题是,有没有办法在 PHP 中使用 PDO 获取 SQL 查询的列名?
Mysql 客户端工具(如 Sequel Pro)能够在显示查询结果的同时显示列名。所以我假设它应该是可能的,但我找不到它。
【问题讨论】:
-
行数组的键是列名。
-
当然可以,考虑你的 sql 查询结果是一个多维数组,所以在显示行和列之前,只需获取第一行数组的键。 foreach($result[0] as $key=>$val) echo $key;