从sql数据库下载php中的.csv文件时出错
我正试图从phpmyadmin数据库下载“.csv”,但它正在下载一些空白文件。 在phpmyadmin中,同样的查询也适用于sql。代码如下:从sql数据库下载php中的.csv文件时出错,php,sql,phpmyadmin,Php,Sql,Phpmyadmin,我正试图从phpmyadmin数据库下载“.csv”,但它正在下载一些空白文件。 在phpmyadmin中,同样的查询也适用于sql。代码如下: function get_csv() { $filename="c:/mydata.csv"; $var=mysql_query("SELECT * INTO OUTFILE $filename FIELDS TERMINATED BY ',' OPTIONALLY ENCLOSED BY '\"' LINES TERMINATED BY \"\
function get_csv()
{
$filename="c:/mydata.csv";
$var=mysql_query("SELECT * INTO OUTFILE $filename FIELDS TERMINATED BY ',' OPTIONALLY ENCLOSED BY '\"' LINES TERMINATED BY \"\n\" FROM course");
header("Content-type: text/plain");
header("Content-Disposition: attachment; filename=$filename.xls");
header("Content-Transfer-Encoding: binary");
header("Pragma: no-cache");
header("Expires: 0");
//print "$header\n$data";
return 0;
}
在取消对print语句的注释时,我得到一个文件,其中有一些错误显示:
<br />
<b>Notice</b>: Undefined variable: header in <b>C:\xampp\htdocs\SEN_PROJECT_Latest\SEN-PROJECT\class\database.php</b> on line <b>485</b><br />
<br />
<b>Notice</b>: Undefined variable: data in <b>C:\xampp\htdocs\SEN_PROJECT_Latest\SEN-PROJECT\class\database.php</b> on line <b>485</b><br />
注意:未定义变量:第485行C:\xampp\htdocs\SEN\u PROJECT\u Latest\SEN-PROJECT\class\database.php中的标题
注意:未定义变量:第485行C:\xampp\htdocs\SEN\u PROJECT\u Latest\SEN-PROJECT\class\database.php中的数据
我猜您正在尝试下载CSV文件,无需依赖此函数之外的其他变量,只需使用readfile(),您应该可以看到正在下载的文件
function get_csv()
{
$filename="c:\\mydata.csv";
$var=mysql_query("SELECT * INTO OUTFILE $filename FIELDS TERMINATED BY ',' OPTIONALLY ENCLOSED BY '\"' LINES TERMINATED BY \"\n\" FROM course") or die(mysql_error());
header("Content-type: text/plain");
header("Content-Disposition: attachment; filename=$filename.xls");
header("Content-Transfer-Encoding: binary");
header("Pragma: no-cache");
header("Expires: 0");
ob_clean();
flush();
readfile($filename);
return 0;
}
如果该代码未下载该文件,您可以检查c:/mydata.csv并查看它是否已创建。输出文件中的文件名需要是字符串文字:
"SELECT * INTO OUTFILE '$filename' FIELDS TERMINATED BY ',' OPTIONALLY ENCLOSED BY '\"' LINES TERMINATED BY \"\n\" FROM course"
在您的函数中,$data是在哪里定义的?我没有,而且作为nwebie,我不太知道如何使用它。您正在打印打印“$header\n$data”。那么,这些美元数据是从哪里来的呢?如果要输出mysql查询的结果。添加一个while循环以获取数据并输出itI使用的确切数据,但下载的文件包含一些警告:警告:readfile(c:/mydata.csv)[]:未能打开流:在第487行的c:\xampp\htdocs\SEN\u PROJECT\u Latest\SEN-PROJECT\class\database.php中没有这样的文件或目录
使用更新的代码,我将
c:/mydata.csv
更改为c:\\mydata.csv
,并且,在调用该函数之前,您应该连接到数据库。我也这样做了,但仍然不走运。现在工作了,它不工作,因为我没有删除现有的文件。谢谢