PHP的Sql语句从MySQL导出表数据

在我的网站pipe理员login时,我希望他能够将一个表中的phpmyAdmin导出到Excel工作表。 我能够通过phpMyAdmin中的导出button手动执行,但我希望能够使用SQL语句执行此操作。 这是我第一次尝试它,并在看出口表结构到Excel文件与phpmyadmin和phpmyadmin出口到CSV文件的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创build了一个名为excelsheet1.csv的空白.csv文件。 但是,当我运行这个代码,它给出了错误couldn't export values并有一个空白的Excel表。 在PHP语句中,我怎样才能在SELECT中编写OPTIONALLY ENCLOSED BY '"' ,因为如果我在SELECT里面使用语法错误。 我能做些什么来将tb1中的值导出到excelsheet1.csv

您正在编写的代码只是PHP,而不是phpMyAdmin(这是pipe理MySQL数据库的pipe理GUI界面),所以您可能正在基于一些误导性的关键字进行search。

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

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

TABLE_NAME ='tb1'部分,你应该使用反引号,而不是像单引号'

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

最后,与你的问题无关,mysql函数已经被折旧了,build议你改用pdo或者mysqli代替。