-1

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 />
4

2 に答える 2

0

のファイル名はINTO OUTFILE文字列リテラルである必要があります。

"SELECT * INTO OUTFILE '$filename' FIELDS TERMINATED BY ',' OPTIONALLY ENCLOSED BY '\"' LINES TERMINATED BY \"\n\" FROM course"
于 2013-04-07T09:00:37.987 に答える
0

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 をチェックして、ファイルが作成されているかどうかを確認できます。

于 2013-04-07T07:32:07.310 に答える