2010-06-04 44 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會爲你找到。

相關問題