15. 輸出 CSV 檔

ADODB 提供輸出 CSV 檔的方法,使用前,要將 toexport.inc.php 引入。

<?php

include('adodb/adodb.inc.php');

// 引入輸出 CSV 檔功能
include('adodb/toexport.inc.php');

$db = ADONewConnection('mysql');

$mch="localhost";
$user="piza";
$pwd="ooo123";
$database="test";

$db->Connect($mch, $user, $pwd, $database);

$sql = "select name as '姓名', year as '年紀' from t";

$rs = $db->Execute($sql);

// 秀出 CSV 格式
print rs2csv($rs);
?>

結果如下:

姓名,年紀
abcde,45
yyy,20
ppp,34
mmm,13
hhh,41
rrr,65
kkk,29
miso,154
sss,89
abc,18
abcde,0
uyt,58
john,28

也可用 tab 分隔欄位,使用 rs2tab 方法如下:

print rs2tab($rs, false);

註: false 表示不顯示欄位名稱

結果如下:

abcde	45
yyy	20
ppp	34
mmm	13
hhh	41
rrr	65
kkk	29
miso	154
sss	89
abc	18
abcde	0
uyt	58
john	28

若是 print rs2tab($rs, true);
結果如下:

姓名	年紀
abcde	45
yyy	20
ppp	34
mmm	13
hhh	41
rrr	65
kkk	29
miso	154
sss	89
abc	18
abcde	0
uyt	58
john	28

也可以將結果由標準輸出(STDOUT)顯示,使用 rs2tabout 方法如下:

print rs2tabout($rs);

執行結果如下:

Figure 1. 在console中顯示結果

也可以存成 CSV 檔:


// 檔案路徑
$path = "/tmp/test.csv";

// 開檔供寫入
$fhd = fopen($path, "w");

// 若開檔成功
if ($fhd) {

   // 則寫入 CSV
   rs2csvfile($rs, $fhd);

   // 也可以使用 rs2tabfile($rs, $fhd);

   // 關檔
   fclose($fhd);
}

結果如下:

[ols3@p web]$ cat /tmp/test.csv
姓名,年紀
abcde,45
yyy,20
ppp,34
mmm,13
hhh,41
rrr,65
kkk,29
miso,154
sss,89
abc,18
abcde,0
uyt,58
john,28