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
|
<?xml version="1.0" encoding="utf-8"?>
<!-- $Revision$ -->
<refentry xml:id="pdostatement.nextrowset" xmlns="http://docbook.org/ns/docbook">
<refnamediv>
<refname>PDOStatement::nextRowset</refname>
<refpurpose>
Advances to the next rowset in a multi-rowset statement handle
</refpurpose>
</refnamediv>
<refsect1 role="description">
&reftitle.description;
<methodsynopsis role="PDOStatement">
<modifier>public</modifier> <type>bool</type><methodname>PDOStatement::nextRowset</methodname>
<void/>
</methodsynopsis>
<para>
Some database servers support stored procedures that return more than one
rowset (also known as a result set).
<methodname>PDOStatement::nextRowset</methodname> enables you to access the
second and subsequent rowsets associated with a PDOStatement object. Each
rowset can have a different set of columns from the preceding rowset.
</para>
</refsect1>
<refsect1 role="parameters">
&reftitle.parameters;
&no.function.parameters;
</refsect1>
<refsect1 role="returnvalues">
&reftitle.returnvalues;
<para>
&return.success;
</para>
</refsect1>
<refsect1 role="examples">
&reftitle.examples;
<para>
<example>
<title>Fetching multiple rowsets returned from a stored procedure</title>
<para>
The following example shows how to call a stored procedure,
<literal>MULTIPLE_ROWSETS</literal>, which returns three rowsets. We use a
<link linkend="control-structures.do.while">do-while</link> loop to
call the <methodname>PDOStatement::nextRowset</methodname> method until it
returns &false; and terminates the loop when no more rowsets are available.
</para>
<programlisting role="php">
<![CDATA[
<?php
$sql = 'CALL multiple_rowsets()';
$stmt = $conn->query($sql);
$i = 1;
do {
$rowset = $stmt->fetchAll(PDO::FETCH_NUM);
if ($rowset) {
printResultSet($rowset, $i);
}
$i++;
} while ($stmt->nextRowset());
function printResultSet(&$rowset, $i) {
print "Result set $i:\n";
foreach ($rowset as $row) {
foreach ($row as $col) {
print $col . "\t";
}
print "\n";
}
print "\n";
}
?>
]]>
</programlisting>
&example.outputs;
<screen>
<![CDATA[
Result set 1:
apple red
banana yellow
Result set 2:
orange orange 150
banana yellow 175
Result set 3:
lime green
apple red
banana yellow
]]>
</screen>
</example>
</para>
</refsect1>
<refsect1 role="seealso">
&reftitle.seealso;
<para>
<simplelist>
<member><methodname>PDOStatement::columnCount</methodname></member>
<member><methodname>PDOStatement::execute</methodname></member>
<member><methodname>PDOStatement::getColumnMeta</methodname></member>
<member><methodname>PDO::query</methodname></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
-->
|