2016-05-16 6 views
1

私はMySQLのDBの特定のテーブルを更新するには、このPHPスクリプトを持って空である:backup.csv、データが正しく更新されています。私はと呼ばれる同じディレクトリにファイルを作成し ダウンロードしたファイルは

<?php 
error_reporting(E_ALL); 
ini_set("display_errors", 1); 
//Include connection file 
require_once('../connection/connect.php'); 

header("Content-type: application/octet-stream"); 
header("Content-Disposition: attachment; filename=reports.csv"); 
header("Pragma: no-cache"); 
header("Expires: 0"); 

$sql = "SELECT * FROM patient"; 
$stmt = $conn->prepare($sql); 

$stmt->execute(); 
//var_dump($stmt->fetch(PDO::FETCH_ASSOC)); 
$data = fopen('backup.csv', 'w'); 
while ($row = $stmt->fetch(PDO::FETCH_ASSOC)) 
{ 
    // Export every row to a file 
    fputcsv($data, $row); 
} 
?> 

このスクリプトを実行するたびにしかし問題は、 .csvファイルの中にテーブルにヘッダを追加できないことです。

ダウンロードしたファイルが空です。私はbackup.csvをダウンロードし、reports.csvをダウンロードする必要はありません。

は、私が試した:

header("Content-Disposition: attachment; filename="'.$data.'";"); 

しかし、それは助けませんでした。ファイルはまだ空です。

答えて

2

あなたの問題は、あなたが実際にあなたが作成したファイルを送信していないということです。

は、これは、より良い構造ですが、あなたはまた、あなたがブラウザ

<?php 
error_reporting(E_ALL); 
ini_set("display_errors", 1); 
//Include connection file 
require_once('../connection/connect.php'); 

$sql = "SELECT * FROM patient"; 
$stmt = $conn->prepare($sql); 

$stmt->execute(); 

$data = fopen('backup.csv', 'w'); 
while ($row = $stmt->fetch(PDO::FETCH_ASSOC)) 
{ 
    // Export every row to a file 
    fputcsv($data, $row); 
} 
fclose($data);     // <- close file 

header("Content-type: application/octet-stream"); 
header("Content-Disposition: attachment; filename=reports.csv"); 
header("Pragma: no-cache"); 
header("Expires: 0"); 
readfile('backup.csv');  // <- new line 
?> 
に内蔵されているファイルを送っする必要が覚えています
2

の直後にfclose($data);を入力してください。クエリコードの実行後にheadersを使用することをお勧めします。以下のサンプルコードを試してみてください。

<?php 
error_reporting(E_ALL); 
ini_set("display_errors", 1); 
//Include connection file 
require_once('../connection/connect.php'); 

$sql = "SELECT * FROM patient"; 
$stmt = $conn->prepare($sql); 

$stmt->execute(); 
//var_dump($stmt->fetch(PDO::FETCH_ASSOC)); 
$data = fopen('backup.csv', 'w'); 
while ($row = $stmt->fetch(PDO::FETCH_ASSOC)) 
{ 
    // Export every row to a file 
    fputcsv($data, $row); 
} 
// Closing the file 
fclose($data); 


header("Content-type: application/octet-stream"); 
header("Content-Disposition: attachment; filename=backup.csv"); 
header("Pragma: no-cache"); 
header("Expires: 0"); 
?> 
関連する問題