PHP で SQL クエリを CSV ファイルに書き込もうとしています。[前の質問で] [1] いくつかのアドバイスのおかげで、私はこれを機能させました。ただし、前の例から可能だったコードの繰り返しを削減しようとしています。
ここで関数にヘッダー/ストリームラッパーを作成しています:
function csvCreate($filename){
header("Cache=Control: must-revalidate, post-check=0, pre-check=0");
header('Content-Description: File Transfer');
header("Content-type: text/csv");
header("Content-Disposition: attachment; filename={$filename}");
header("Expires: 0");
header("Pragma: public");
$fh = @fopen( 'php://output', 'w' );
}
次に、条件ステートメントで関数を呼び出し、ここでパラメーターとして $filename を渡します。
if(isset($_POST["Submit"]) && ($_POST['Weight'] == 'Weight'))
{
//csvCreate->$fileName .= 'OutputWeightNull.csv';
csvCreate('OutputWeightNull.csv');
$query = mysqli_query($conn, 'SELECT * FROM `bfi_product_volumne_data` WHERE weight = 0 OR weight IS NULL') or die(mysqli_error($conn));
if ($result = mysqli_fetch_array($query,MYSQLI_ASSOC))
{
fputcsv($fh, array_keys($result));
fputcsv($fh, $result);
while ($result = mysqli_fetch_array($query,MYSQLI_ASSOC))
{
fputcsv($fh, $result);
}
}
}
問題は、データが CSV に書き込まれていないことです。私の感じでは、「fputcsv」呼び出しを関数に向ける必要があります。「csvCreate->fputcsv」を使用してこれを試みましたが、機能していないようです。ここで問題が何であるかを誰かが提案できますか。ありがとう
[1]: http://stackoverflow.com/questions/33433737/php-writing-a-mysql-query-to-cs