0

SQL クエリを使用して csv ファイルを作成します。

        $sql = "SELECT 'id','username','name','email',
        'phone_number','city',
        'batch','course_type' UNION ALL
        SELECT id, username, name, email,
        phone_number, city, batch, course_type
        FROM users INTO OUTFILE '".$file_path."' ".
        "FIELDS TERMINATED BY ','
        ENCLOSED BY '\"'
        LINES TERMINATED BY '\n'";

このファイルをブラウザで強制ダウンロードした後、このファイルを /tmp ディレクトリから削除する必要があります。しかし、ファイルは mysql によって所有されているため、php コードはそれを削除できません。ファイルを削除できるように、コードでこのファイルのアクセス許可を変更するにはどうすればよいですか?

4

1 に答える 1

0

これを正しく行うための1つの解決策は次のとおりです(これは、それを行う方法の大まかな例です):

データベースからデータを配列として返し、それを反復処理します。

// tell the browser that this is a download
header("Content-type: text/csv");
header("Content-Disposition: attachment; filename=list.csv");

// column separator    
$separator = ';';
// field delimiter
$field_delimiter = '"';
// line end
$line_end = "\r\n";

foreach ($result as $row):

    $i = 0;

    foreach ($row as $item):
        // do not add separator before the first item
        if ($i > 0)
        {
            echo $separator;
        }

        echo $field_delimiter.$item.$field_delimiter;

        $i++;

    endforeach;

    // line end
    echo $line_end;

endforeach;

他には何も出力せず、CSV コンテンツだけを出力します。

于 2013-07-08T08:52:22.283 に答える