删除sql转储文件


deleting a sql dump file

我用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代码无法删除该文件。如何在代码中更改该文件的权限,以便删除该文件?

一个正确的解决方案是(这是如何做到这一点的粗略示例):

将数据库中的数据作为数组返回,并对其进行迭代:

// 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内容。