第一次我必須這樣做,但我需要將查詢結果保存爲CSV並在服務器上創建文件,它通過SFTP傳遞到遠程服務器。我可以通過下面的代碼成功創建在瀏覽器中下載的CSV,但似乎無法將它保存在服務器上。我想我可能需要file_put_contents?如果任何人都可以提出一種方法,或者更好的方法來通過sftp發送輸出,那麼它會得到很大的好處。將查詢結果保存爲CSV並在服務器上創建文件
$result = mysql_query("SELECT * FROM `policy_details` WHERE `policyNumber` = '848938'");
if (!$result) die('Couldn\'t fetch records');
$num_fields = mysql_num_fields($result);
$headers = array();
for ($i = 0; $i < $num_fields; $i++)
{
$headers[] = mysql_field_name($result , $i);
}
$fp = fopen('php://output', 'w');
if ($fp && $result)
{
header('Content-Type: text/csv');
header('Content-Disposition: attachment; filename="export.csv"');
header('Pragma: no-cache');
header('Expires: 0');
fputcsv($fp, $headers);
while ($row = mysql_fetch_row($result))
{
fputcsv($fp, array_values($row));
}
//die;
}
你有沒有做過任何調試?嘗試在while循環中回顯而不是寫入文件,因此您可以確保您的while循環正在執行,並且您的輸出符合預期。 – Travesty3 2012-03-05 16:21:02
您是否嘗試在代碼中使用除'php:// output'之外的值? – 2012-03-05 16:37:01