(PECL ibm_db2 >= 1.0.0)
db2_fetch_assoc — 傳回以欄位名稱作為索引的陣列,表示結果集中的一列
stmt
包含結果集的有效 stmt
資源。
row_number
請求結果集中指定的以 1 為起始索引的列。如果結果集使用僅向前游標,傳遞此參數將導致 PHP 警告。
返回一個關聯式陣列,其中欄位值以欄位名稱作為索引,代表結果集中下一列或所請求的列。如果結果集中沒有剩餘的列,或者 row_number
所請求的列不存在於結果集中,則返回 false
。
範例 #1 迭代僅向前游標
如果您呼叫 db2_fetch_assoc() 而不指定列號,它會自動擷取結果集中的下一列。
<?php
$sql = "SELECT id, name, breed, weight FROM animals ORDER BY breed";
$stmt = db2_prepare($conn, $sql);
$result = db2_execute($stmt);
while ($row = db2_fetch_assoc($stmt)) {
printf ("%-5d %-16s %-32s %10s\n",
$row['ID'], $row['NAME'], $row['BREED'], $row['WEIGHT']);
}
?>
以上範例將輸出
0 Pook cat 3.20 5 Rickety Ride goat 9.70 2 Smarty horse 350.00
範例 #2 使用 db2_fetch_assoc() 從可捲動游標擷取特定列
如果您的結果集使用可捲動游標,您可以使用指定的列號呼叫 db2_fetch_assoc()。以下範例從第二列開始,擷取結果集中每隔一列的資料。
<?php
$sql = "SELECT id, name, breed, weight FROM animals ORDER BY breed";
$result = db2_exec($stmt, $sql, array('cursor' => DB2_SCROLLABLE));
$i=2;
while ($row = db2_fetch_assoc($result, $i)) {
printf ("%-5d %-16s %-32s %10s\n",
$row['ID'], $row['NAME'], $row['BREED'], $row['WEIGHT']);
$i = $i + 2;
}
?>
以上範例將輸出
0 Pook cat 3.20 5 Rickety Ride goat 9.70 2 Smarty horse 350.00