Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/sql/83.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
从sql数据库下载php中的.csv文件时出错_Php_Sql_Phpmyadmin - Fatal编程技术网

从sql数据库下载php中的.csv文件时出错

从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 \"\

我正试图从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 \"\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
,并且,在调用该函数之前,您应该连接到数据库。我也这样做了,但仍然不走运。现在工作了,它不工作,因为我没有删除现有的文件。谢谢