2015-05-24 80 views
1

导出表数据在我的网站时登录管理员在我希望他能够在phpMyAdmin导出表到Excel工作表。我能够通过phpMyAdmin中的导出按钮手动执行它,但我希望能够使用SQL语句执行此操作。 这是我第一次尝试它并在看后exporting-table-structure-to-excel-files-with-phpmyadminphpmyadmin-exporting-to-csv-for-excelPHP SQL语句从MySQL

我写了下面的代码。

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空白的.csv外商投资企业命名为excelsheet1.csv。但是,当我运行这段代码时,它给出了错误couldn't export values,并且有一个空白的Excel表。在PHP语句中,我如何在SELECT中编写OPTIONALLY ENCLOSED BY '"',因为如果我在SELECT中使用",则会出现语法错误。我能做些什么来导出tb1中的值到excelsheet1.csv

回答

0

您正在编写的代码仅限于PHP,而不适用于phpMyAdmin(这是管理MySQL数据库的管理GUI界面),因此您可能正在基于某些误导性的关键字。

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

您的查询看起来很奇怪,我不确定DATABASE('db1')部分 - 您在调用MySQL函数DATABASE,但我不认为它带有任何参数,所以'db1'部分被忽略或发出警告或错误。我没有看到你设置了一个默认数据库,所以该函数可能返回NULL。

TABLE_NAME ='tb1'一部分,您应该使用反引号,比如`而不是单引号,如“

回到事物的PHP一边,你的错误检测代码,你可以打印从MySQL错误信息,以便更好地看问题是什么。

最后,无关你的问题,MySQL的功能已被贬值,我们建议您切换到PDO或mysqli的替代。