php - 如何获取select查询返回结果的列名

标签 php mysql pdo

我正在构建一个报告工具,用户可以在其中输入 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/

相关文章:

php - 在函数 pdo 中输入数组

php - 从数据库中的字段中减去值

php - Axios CORS/Preflight 因 Laravel 5.4 API 调用而失败

php - 如何防止 Internet Explorer 重写我的文本?

mysql - 修改 MySQL 列中的所有 varchar 元素

mysql - 将此代码转换为事件记录/sql 查询

mysql - Ubuntu 卸载后无法安装 my-sql

php - 将数据提取到表中并更新 - 编辑时不仅单击一个值选择

php - 如何在 PHP 7.1.1 中对浮点值进行 json_encode?

PHP 在 PDO 插入的空数组值中插入 mysql NULL