PHP8 db2_fetch_row
(PECL ibm_db2 >= 1.0.0)
db2_fetch_row — 将结果集指针设置为下一行或请求的行
说明
db2_fetch_row(resource $stmt, int $row_number = -1): bool
使用 db2_fetch_row() 循环访问结果集,或者 在请求可滚动项时指向结果集中的特定行 光标。
若要从结果集中检索单个字段,请调用 db2_result() 函数。
大多数应用程序不会调用 db2_fetch_row() 和 db2_result(),而是调用 db2_fetch_assoc()、db2_fetch_both() 之一。 或 db2_fetch_array() 前进结果集指针 并返回一个完整的行作为数组。
参数
stmt
有效资源。
stmt
row_number
使用可滚动的光标,您可以在 结果集。行编号为 1 索引。
返回值
如果结果集中存在请求的行,则返回 true。如果结果集中不存在请求的行,则返回 false。
示例
示例 #1 遍历结果集
下面的示例演示如何循环访问结果集 使用 db2_fetch_row() 并从 结果集为 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";
}
?>
以上示例会输出:
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()。一般来说,db2_fetch_row()/db2_result()有更多的问题 在转换中使用各种列类型,包括应用程序中可能的截断。 您还可以找到 db2_fetch_both()、db2_fetch_array() 和 db2_fetch_object() 的性能 优于 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);
?>
以上示例会输出:
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
参见
- db2_fetch_array() - 返回一个数组,按列位置索引,表示结果集中的一行
- db2_fetch_assoc() - 返回一个数组,按列名索引,表示结果集中的一行
- db2_fetch_both() - 返回一个数组,该数组按列名和位置编制索引,表示结果集中的一行
- db2_fetch_object() - 返回一个对象,其属性表示提取行中的列
- db2_result() - 从结果集中的一行返回一列