2010-06-04 47 views

回答

2

如果数据库是MySQL的,试试这个:

SELECT a,b,a+b INTO OUTFILE '/tmp/result.txt' 
    FIELDS TERMINATED BY ',' OPTIONALLY ENCLOSED BY '"' 
    LINES TERMINATED BY '\n' 
    FROM test_table; 

(从http://dev.mysql.com/doc/refman/5.0/en/select.html的代码片段)

或者你可以在应用程序代码这样做:

$fh = fopen('file.csv', 'w'); 
$rows = $db->query('select first_name, last_name, email, telephone, company_name, customer_id, city from customer_tab;'); 

while($r = $rows->fetch_assoc()) { 
     fputcsv($fh, $r); 
} 
fclose($fh); 

或PHP < 5.1:

$rows = $db->query('select first_name, last_name, email, telephone, company_name, customer_id, city from customer_tab;'); 

while($r = $rows->fetch_assoc()) { 
     $i = 0; 
     foreach($r as $k => $v) { 
       $v = trim($v); 
       echo "\"$v\""; 
       if($i++ < 6) { 
         echo ","; 
       } 
     } 
     echo "\n"; 
} 
+1

很好的答案 - 但请注意,CSV不是一种文件格式 - 它的许多类似的文件格式。有一个text/csv mime类型 - 它不涉及转义的元数据,即使这样也只涉及一小部分被描述为CSV的执行格式。当然,微软的CSV也不同于其他所有人! – symcbean 2010-06-04 12:30:33

0

有几种方法可以实现这一点。你可以“手动”来做到这一点,我的意思是你格式化输出并将其写入磁盘。您可以使用fputcsv将数组写为csv格式的行。你可以使用PEAR的File_CSV。或者你可以使用任何Google会为你找到。

相关问题