mySQLデータベースからデータを取得し、作成後に自動的にダウンロードする必要があるCSVファイルにエクスポートするためのPHPコードがあります。fputcsvファイルを作成しますが、空のファイルをダウンロードします
- は、データを取得します:
$connection = mysqli_connect($host, $username, $password, $dbname) or die("Connection Error " . mysqli_error($connection)); // fetch mysql table rows $sql = "select * from users"; $result = mysqli_query($connection, $sql) or die("Selection Error " . mysqli_error($connection)); $fp = fopen('users.csv', 'w'); while($row = mysqli_fetch_assoc($result)) { fputcsv($fp, $row); } fclose($fp); header('Content-Type: text/csv'); header('Content-Disposition: attachment; filename="users.csv"'); mysqli_close($connection);
ここでの問題はそれということです。
- export.phpファイルと同じディレクトリにあるサーバー上のCSVファイルを取得し、そのデータはです。
- は、同じ名前を持つファイルをダウンロードしますが、それはEMPTY
おかげです。
:
はこれを試してみてください。 'readfile( 'users.csv')'のようなものが必要です。ファイルをディスクから読み取ってクライアントに吐き出します。 –
ファイルの内容のみを出力するファイルの内容は出力されず、ファイル名はCSVです。 – chris85
サーバ上の物理ファイルに書き込むのではなく(同時ユーザがいる場合は問題があります)、ファイル名として '' php:// output''を使用してください(ファイルを開く前にヘッダーを送信してください)。すべてのサーバーディスクを使用せずにブラウザ –