array ( 0 => 'index.php', 1 => 'PHP Manual', ), 'head' => array ( 0 => 'UTF-8', 1 => 'ru', ), 'this' => array ( 0 => 'function.db2-fetch-both.php', 1 => 'db2_fetch_both', ), 'up' => array ( 0 => 'ref.ibm-db2.php', 1 => 'Функции IBM DB2', ), 'prev' => array ( 0 => 'function.db2-fetch-assoc.php', 1 => 'db2_fetch_assoc', ), 'next' => array ( 0 => 'function.db2-fetch-object.php', 1 => 'db2_fetch_object', ), 'alternatives' => array ( ), 'source' => array ( 'lang' => 'ru', 'path' => 'reference/ibm_db2/functions/db2-fetch-both.xml', ), ); $setup["toc"] = $TOC; $setup["toc_deprecated"] = $TOC_DEPRECATED; $setup["parents"] = $PARENTS; manual_setup($setup); ?>
(PECL ibm_db2 >= 1.0.0)
db2_fetch_both — Возвращает массив, индексированный как по имени столбца, так и по позиции, представляющий строку в наборе результатов
Возвращает массив, индексированный как по имени столбца, так и по позиции, представляющий строку в наборе результатов. Обратите внимание, что строка, возвращаемая db2_fetch_both(), требует больше памяти, чем массивы с одним индексом, возвращаемые db2_fetch_assoc() или db2_fetch_array().
stmt
Допустимый ресурс stmt
, содержащий набор результатов.
row_number
Запрашивает конкретную строку по индексу (начинается с 1) из набора результатов. Передача параметра приводит к предупреждению PHP, если в наборе результатов используется курсор "forward-only".
Возвращает ассоциативный массив со значениями столбцов, проиндексированными как по имени столбца,
так и по индексу столбца (начиная с 0). Массив представляет следующую или запрошенную строку в наборе результатов.
Возвращает false
, если в наборе результатов не осталось строк или если строка,
запрошенная row_number
, не существует в наборе результатов.
Пример #1 Перебор курсором "forward-only"
Если вы вызываете db2_fetch_both() без определённого номера строки, он автоматически получает следующую строку в наборе результатов. В следующем примере доступ к столбцам в возвращаемом массиве осуществляется как по имени столбца, так и по числовому индексу.
<?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_both($stmt)) {
printf ("%-5d %-16s %-32s %10s\n",
$row['ID'], $row[0], $row['BREED'], $row[3]);
}
?>
Результат выполнения приведённого примера:
0 Pook cat 3.20 5 Rickety Ride goat 9.70 2 Smarty horse 350.00
Пример #2 Получение определённых строк с помощью db2_fetch_both() из прокручиваемого курсора
Если в вашем наборе результатов используется прокручиваемый курсор, вы можете вызвать db2_fetch_both() с определённым номером строки. В следующем примере извлекается каждая вторая строка в наборе результатов, начиная со второй строки.
<?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_both($result, $i)) {
printf ("%-5d %-16s %-32s %10s\n",
$row[0], $row['NAME'], $row[2], $row['WEIGHT']);
$i = $i + 2;
}
?>
Результат выполнения приведённого примера:
0 Pook cat 3.20 5 Rickety Ride goat 9.70 2 Smarty horse 350.00