初めてこの作業を行う必要がありましたが、クエリの結果を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
あなたのコードで 'php:// output'以外の値を使ってみましたか? –