PHP8 db2_fetch_row

2024-04-07 10:23 更新

(PECL ibm_db2 >= 1.0.0)

db2_fetch_row — 將結(jié)果集指針設(shè)置為下一行或請(qǐng)求的行

說(shuō)明

db2_fetch_row(resource $stmt, int $row_number = -1): bool

使用 db2_fetch_row() 循環(huán)訪(fǎng)問(wèn)結(jié)果集,或者 在請(qǐng)求可滾動(dòng)項(xiàng)時(shí)指向結(jié)果集中的特定行 光標(biāo)。

若要從結(jié)果集中檢索單個(gè)字段,請(qǐng)調(diào)用 db2_result() 函數(shù)。

大多數(shù)應(yīng)用程序不會(huì)調(diào)用 db2_fetch_row() 和 db2_result(),而是調(diào)用 db2_fetch_assoc()、db2_fetch_both() 之一。 或 db2_fetch_array() 前進(jìn)結(jié)果集指針 并返回一個(gè)完整的行作為數(shù)組。

參數(shù) 

stmt

有效資源。stmt

row_number

使用可滾動(dòng)的光標(biāo),您可以在 結(jié)果集。行編號(hào)為 1 索引。

返回值 

如果結(jié)果集中存在請(qǐng)求的行,則返回 true。如果結(jié)果集中不存在請(qǐng)求的行,則返回 false。

示例 

示例 #1 遍歷結(jié)果集

下面的示例演示如何循環(huán)訪(fǎng)問(wèn)結(jié)果集 使用 db2_fetch_row() 并從 結(jié)果集為 db2_result()。

<?php
$sql = 'SELECT name, breed FROM animals WHERE weight < ?';
$stmt = db2_prepare($conn, $sql);
db2_execute($stmt, array(10));
while (db2_fetch_row($stmt)) {
    $name = db2_result($stmt, 0);
    $breed = db2_result($stmt, 1);
    print "$name $breed";
}
?>

以上示例會(huì)輸出:

cat Pook
gold fish Bubbles
budgerigar Gizmo
goat Rickety Ride

示例 #2 i5/OS 推薦的 db2_fetch_row/db2_result 替代品

在 i5/OS 上,建議使用 db2_fetch_both()、db2_fetch_array() 或 db2_fetch_object() 而不是 db2_fetch_row()/db2_result()。一般來(lái)說(shuō),db2_fetch_row()/db2_result()有更多的問(wèn)題 在轉(zhuǎn)換中使用各種列類(lèi)型,包括應(yīng)用程序中可能的截?cái)唷?您還可以找到 db2_fetch_both()、db2_fetch_array() 和 db2_fetch_object() 的性能 優(yōu)于 db2_fetch_row()/db2_result()。EBCIDICASCIIDBCS

<?php
  $conn = db2_connect("","","");
  $sql = 'SELECT SPECIFIC_SCHEMA, SPECIFIC_NAME, ROUTINE_SCHEMA, ROUTINE_NAME, ROUTINE_TYPE, ROUTINE_CREATED, ROUTINE_BODY, IN_PARMS, OUT_PARMS, INOUT_PARMS, PARAMETER_STYLE, EXTERNAL_NAME, EXTERNAL_LANGUAGE FROM QSYS2.SYSROUTINES FETCH FIRST 2 ROWS ONLY';
  $stmt = db2_exec($conn, $sql, array('cursor' => DB2_SCROLLABLE));
  while ($row = db2_fetch_both($stmt)){
    echo "<br>db2_fetch_both {$row['SPECIFIC_NAME']} {$row['ROUTINE_CREATED']} {$row[5]}";
  }
  $stmt = db2_exec($conn, $sql, array('cursor' => DB2_SCROLLABLE));
  while ($row = db2_fetch_array($stmt)){
    echo "<br>db2_fetch_array {$row[1]}  {$row[5]}";
  }
  $stmt = db2_exec($conn, $sql, array('cursor' => DB2_SCROLLABLE));
  while ($row = db2_fetch_object($stmt)){
    echo "<br>db2_fetch_object {$row->SPECIFIC_NAME} {$row->ROUTINE_CREATED}";
  }
  db2_close($conn);
?>

以上示例會(huì)輸出:

db2_fetch_both MATCH_ANIMAL 2006-08-25-17.10.23.775000 2006-08-25-17.10.23.775000
db2_fetch_both MULTIRESULTS 2006-10-17-10.11.05.308000 2006-10-17-10.11.05.308000
db2_fetch_array MATCH_ANIMAL 2006-08-25-17.10.23.775000
db2_fetch_array MULTIRESULTS 2006-10-17-10.11.05.308000
db2_fetch_object MATCH_ANIMAL 2006-08-25-17.10.23.775000
db2_fetch_object MULTIRESULTS 2006-10-17-10.11.05.308000

參見(jiàn) 

  • db2_fetch_array() - 返回一個(gè)數(shù)組,按列位置索引,表示結(jié)果集中的一行
  • db2_fetch_assoc() - 返回一個(gè)數(shù)組,按列名索引,表示結(jié)果集中的一行
  • db2_fetch_both() - 返回一個(gè)數(shù)組,該數(shù)組按列名和位置編制索引,表示結(jié)果集中的一行
  • db2_fetch_object() - 返回一個(gè)對(duì)象,其屬性表示提取行中的列
  • db2_result() - 從結(jié)果集中的一行返回一列


以上內(nèi)容是否對(duì)您有幫助:
在線(xiàn)筆記
App下載
App下載

掃描二維碼

下載編程獅App

公眾號(hào)
微信公眾號(hào)

編程獅公眾號(hào)