-
Notifications
You must be signed in to change notification settings - Fork 788
/
Copy pathdb2-fetch-row.xml
186 lines (180 loc) · 6.11 KB
/
db2-fetch-row.xml
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
-->