Это наверное самый простой способ создания cvs файла из запроса к базе данных и предложить пользователю скачать этот файл. Этот код использует PHP5 функцию fputcvs, для того, что бы корректно внести массив данных в строку cvs файла. Вам не понадобиться давать доступ на запись к папкам, так как файл будет формироваться в буфере:
<?php $output = fopen('php://temp/maxmemory:'. (5*1024*1024), 'r+'); $columns = array('Field1','Field2','Field3','Field4','Field5'); fputcsv($output, $columns); $query = mysql_query("SELECT * FROM `table`"); while ($data = mysql_fetch_assoc($query)){ fputcsv($output, $data); } rewind($output); $export = stream_get_contents($output); fclose($output); header('Content-type: application/octet-stream'); header('Content-Disposition: attachment; filename="export.csv"'); echo $export; ?>