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 Рекомендуемые альтернативы db2_fetch_row/db2_result для i5/OS

В i5/OS рекомендуется использовать db2_fetch_both(), db2_fetch_array() или db2_fetch_object() вместо db2_fetch_row()/db2_result(). Обычно у db2_fetch_row()/db2_result() больше проблем с различными типами столбцов при преобразовании EBCIDIC в ASCII, включая возможное усечение в DBCS приложениях. Вы также можете обнаружить, что производительность db2_fetch_both(), db2_fetch_array() и db2_fetch_object() превосходит db2_fetch_row()/db2_result().

<?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() - Возвращает один столбец из строки в наборе результатов
To Top