1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 128 129 130 131 132 133 134 135 136 137 138 139 140 141 142 143 144 145 146 147 148 149 150 151 152 153 154 155 156 157 158 159 160 161 162 163 164 165 166 167 168 169 170 171 172 173 174 175 176 177 178 179 180 181 182 183 184 185 186
|
<?xml version="1.0" encoding="utf-8"?>
<!-- $Revision$ -->
<!-- Generated by xml_proto.php v2.2. Found in /scripts directory of phpdoc. -->
<refentry xml:id="function.db2-fetch-row" xmlns="http://docbook.org/ns/docbook">
<refnamediv>
<refname>db2_fetch_row</refname>
<refpurpose>
Sets the result set pointer to the next row or requested row
</refpurpose>
</refnamediv>
<refsect1 role="description">
&reftitle.description;
<methodsynopsis>
<type>bool</type><methodname>db2_fetch_row</methodname>
<methodparam><type>resource</type><parameter>stmt</parameter></methodparam>
<methodparam choice="opt"><type>int</type><parameter>row_number</parameter><initializer>-1</initializer></methodparam>
</methodsynopsis>
<para>
Use <function>db2_fetch_row</function> to iterate through a result set, or
to point to a specific row in a result set if you requested a scrollable
cursor.
</para>
<para>
To retrieve individual fields from the result set, call the
<function>db2_result</function> function.
</para>
<para>
Rather than calling <function>db2_fetch_row</function> and
<function>db2_result</function>, most applications will call one of
<function>db2_fetch_assoc</function>, <function>db2_fetch_both</function>,
or <function>db2_fetch_array</function> to advance the result set pointer
and return a complete row as an array.
</para>
</refsect1>
<refsect1 role="parameters">
&reftitle.parameters;
<para>
<variablelist>
<varlistentry>
<term><parameter>stmt</parameter></term>
<listitem>
<para>
A valid <literal>stmt</literal> resource.
</para>
</listitem>
</varlistentry>
<varlistentry>
<term><parameter>row_number</parameter></term>
<listitem>
<para>
With scrollable cursors, you can request a specific row number in the
result set. Row numbering is 1-indexed.
</para>
</listitem>
</varlistentry>
</variablelist>
</para>
</refsect1>
<refsect1 role="returnvalues">
&reftitle.returnvalues;
<para>
Returns &true; if the requested row exists in the result set. Returns
&false; if the requested row does not exist in the result set.
</para>
</refsect1>
<refsect1 role="examples">
&reftitle.examples;
<para>
<example>
<title>Iterating through a result set</title>
<para>
The following example demonstrates how to iterate through a result set
with <function>db2_fetch_row</function> and retrieve columns from the
result set with <function>db2_result</function>.
</para>
<programlisting role="php">
<![CDATA[
<?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";
}
?>
]]>
</programlisting>
&example.outputs;
<screen>
<![CDATA[
cat Pook
gold fish Bubbles
budgerigar Gizmo
goat Rickety Ride
]]>
</screen>
</example>
<example>
<title>i5/OS recommended alternatives to db2_fetch_row/db2_result</title>
<para>
On i5/OS it is recommended that you use <function>db2_fetch_both</function>,
<function>db2_fetch_array</function>, or <function>db2_fetch_object</function>
over <function>db2_fetch_row</function>/<function>db2_result</function>. In general
<function>db2_fetch_row</function>/<function>db2_result</function> have more issues
with various column types in <literal>EBCIDIC</literal> to <literal>ASCII</literal>
translation, including possible truncation in <literal>DBCS</literal> applications.
You may also find the performance of <function>db2_fetch_both</function>,
<function>db2_fetch_array</function>, and <function>db2_fetch_object</function> to
be superior to <function>db2_fetch_row</function>/<function>db2_result</function>.
</para>
<programlisting role="php">
<![CDATA[
<?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);
?>
]]>
</programlisting>
&example.outputs;
<screen>
<![CDATA[
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
]]>
</screen>
</example>
</para>
</refsect1>
<refsect1 role="seealso">
&reftitle.seealso;
<para>
<simplelist>
<member><function>db2_fetch_array</function></member>
<member><function>db2_fetch_assoc</function></member>
<member><function>db2_fetch_both</function></member>
<member><function>db2_fetch_object</function></member>
<member><function>db2_result</function></member>
</simplelist>
</para>
</refsect1>
</refentry>
<!-- Keep this comment at the end of the file
Local variables:
mode: sgml
sgml-omittag:t
sgml-shorttag:t
sgml-minimize-attributes:nil
sgml-always-quote-attributes:t
sgml-indent-step:1
sgml-indent-data:t
indent-tabs-mode:nil
sgml-parent-document:nil
sgml-default-dtd-file:"~/.phpdoc/manual.ced"
sgml-exposed-tags:nil
sgml-local-catalogs:nil
sgml-local-ecat-files:nil
End:
vim600: syn=xml fen fdm=syntax fdl=2 si
vim: et tw=78 syn=sgml
vi: ts=1 sw=1
-->
|