PHP Sql 语句从 MySQL 导出表数据

Posted

技术标签:

【中文标题】PHP Sql 语句从 MySQL 导出表数据【英文标题】:PHP Sql statement to export table data from MySQL 【发布时间】:2015-08-05 23:44:36 【问题描述】:

在我的站点中,当管理员登录时,我希望他能够将 phpmyAdmin 中的表格导出到 Excel 工作表。我可以通过 phpMyAdmin 中的导出按钮手动执行此操作,但我希望能够使用 SQL 语句执行此操作。 这是我第一次尝试,看了exporting-table-structure-to-excel-files-with-phpmyadmin 和phpmyadmin-exporting-to-csv-for-excel

我写了以下代码。

if($level==1)
    echo "<br>";
    $q9=" SELECT * INTO OUTFILE 'C:\xampp\htdocs\excelsheet1.csv'
FIELDS TERMINATED BY ',' OPTIONALLY ENCLOSED BY ''
LINES  TERMINATED BY '\n'
FROM   INFORMATION_SCHEMA.COLUMNS
WHERE  TABLE_SCHEMA = DATABASE('db1') AND TABLE_NAME ='tb1'";
$s9=mysql_query($q9,$connect) or die("couldn't export values");
      

我在C:\xampp\htdocs 中创建了一个名为excelsheet1.csv 的空白.csv 文件。但是当我运行这段代码时,它给出了错误couldn't export values,并且有一个空白的 Excel 表。在 PHP 语句中,我如何在 SELECT 中编写 OPTIONALLY ENCLOSED BY '"',因为如果我在 SELECT 中使用 ",我会收到语法错误。如何将 tb1 中的值导出到 excelsheet1.csv

【问题讨论】:

【参考方案1】:

您编写的代码仅适用于 PHP,不适用于 phpMyAdmin(用于管理 MySQL 数据库的管理 GUI 界面),因此您可能会根据一些误导性关键字进行搜索。

我建议您首先尝试从命令行客户端运行该 SQL 语句——它在那里按预期工作吗?如果您在没有 CSV 导出部分的情况下运行查询,它会显示您期望的输出吗?

您的查询对我来说看起来很奇怪,我不确定 DATABASE('db1') 部分 - 您正在调用 MySQL 函数 DATABASE 但我认为它不需要任何参数,所以 'db1' 部分要么被忽略,要么抛出警告或错误。我没有看到您设置了默认数据库,因此该函数可能无论如何都返回 NULL。

TABLE_NAME ='tb1' 部分,您应该使用像` 这样的反引号,而不是像' 这样的单引号

回到 PHP 方面,在您的错误检测代码中,您可以打印来自 MySQL 的错误消息以更好地查看问题所在。

最后,和你的问题无关,mysql的功能已经贬值了,建议你改用pdo或者mysqli。

【讨论】:

以上是关于PHP Sql 语句从 MySQL 导出表数据的主要内容,如果未能解决你的问题,请参考以下文章

mysql中查询数据库中表名称和结构的sql语句是啥啊啊

mysql导出成sql脚本的sql语句?

如何创建一个mysql.sql文件存放建表语句和插入测试数据语句

在mysql里查看表,把表打出来的语句

oracle数据库建立临时表,sql语句

MySQL-注释-Navicat基本使用-复杂查询练习题-解题思路-pymysql操作数据库-SQL注入-05