我有這段PHP代碼旨在從mySQL數據庫檢索數據,並將其導出到CSV文件,該文件必須在創建後自動下載。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文件及其上的數據。
- 下載要與同名文件,但它是空的
感謝。
你從來不屑輸出文件。你需要像'readfile('users.csv')'這樣的文件來讀取脫離磁盤的文件並將其吐出到客戶端。 –
您不輸出僅發送文件名稱的文件內容,並且它是CSV。 – chris85
而不是將其寫入服務器上的物理文件(如果您有併發用戶,則存在問題)使用''php:// output''作爲文件名(並在打開文件之前發送您的頭文件),該文件將直接發送給瀏覽器根本沒有使用任何服務器磁盤 –