我正在构建一个报告工具,用户可以在其中输入 SQL 查询,该工具将以 CSV 文件形式返回结果。除了仅写入 CSV 文件之外,我还需要在此处执行一些额外的逻辑。所以SELECT INTO OUTFILE
对我不起作用。
我知道执行任意用户提供的 SQL 查询是不好的,但该工具仅在内部使用,因此安全性不应成为问题。另外,我将其限制为仅选择查询。
现在,当我以 CSV 格式导出数据时,我还想将查询的列名称输出为 CSV 文件中的第一行。
所以我的问题是,有没有办法使用 PDO 获取 PHP 中 SQL 查询的列名称?
像Sequel Pro这样的Mysql客户端工具能够在显示查询结果的同时显示列名。所以我假设它应该是可能的,但我找不到它。
最佳答案
这里我没有编写完整的 PDO 连接代码。您可以使用下面的代码/逻辑来获取返回列名称。
$stmt = $conn->query("SELECT COUNT(*), first_column, second_column FROM table_name");
$row = $stmt->fetch(PDO::FETCH_ASSOC);
$columns = array_keys($row);
print_r($columns); // array(0 => COUNT(*), 1 => first_column, 2 => second_column)
关于php - 如何获取select查询返回结果的列名,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/53692283/