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 导出表数据的主要内容,如果未能解决你的问题,请参考以下文章