-
Notifications
You must be signed in to change notification settings - Fork 39
/
closecursor.xml
141 lines (129 loc) · 4.01 KB
/
closecursor.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
<?xml version="1.0" encoding="utf-8"?>
<!-- $Revision$ -->
<!-- EN-Revision: 082ddc19f53e6e254010de1a1fbbe485ff744ec1 Maintainer: samesch Status: ready -->
<!-- Reviewed: no -->
<refentry xml:id="pdostatement.closecursor" xmlns="http://docbook.org/ns/docbook">
<refnamediv>
<refname>PDOStatement::closeCursor</refname>
<refpurpose>
Schließt den Cursor, damit die Anweisung erneut ausgeführt werden kann
</refpurpose>
</refnamediv>
<refsect1 role="description">
&reftitle.description;
<methodsynopsis role="PDOStatement">
<modifier>public</modifier> <type>bool</type><methodname>PDOStatement::closeCursor</methodname>
<void/>
</methodsynopsis>
<para>
<methodname>PDOStatement::closeCursor</methodname> gibt die Verbindung
zum Server frei, damit andere SQL-Anweisungen ausgeführt werden können,
belässt die Anweisung aber in einem Zustand, in dem sie erneut ausgeführt
werden kann.
</para>
<para>
Diese Methode ist nützlich für Datenbanktreiber, die die Ausführung eines
PDOStatement-Objekts nicht unterstützen, wenn ein zuvor ausgeführtes
PDOStatement-Objekt noch nicht abgrufene Zeilen enthält. Wenn der
Datenbanktreiber diese Einschränkung aufweist, kann es zu einem
Out-of-Sequence-Fehler kommen.
</para>
<para>
<methodname>PDOStatement::closeCursor</methodname> ist entweder als
optionale treiberspezifische Methode implementiert (für maximale
Effizienz), oder als generischer PDO-Fallback, wenn keine
treiberspezifische Funktion installiert ist. Der generische PDO-Fallback
ist semantisch dasselbe wie der folgende Code in einem PHP-Skript:
<programlisting role="php">
<![CDATA[
<?php
do {
while ($stmt->fetch())
;
if (!$stmt->nextRowset())
break;
} while (true);
?>
]]>
</programlisting>
</para>
</refsect1>
<refsect1 role="parameters">
&reftitle.parameters;
&no.function.parameters;
</refsect1>
<refsect1 role="returnvalues">
&reftitle.returnvalues;
<para>
&return.success;
</para>
</refsect1>
<refsect1 role="errors">
&reftitle.errors;
&pdo.errors;
</refsect1>
<refsect1 role="examples">
&reftitle.examples;
<para>
<example>
<title><methodname>PDOStatement::closeCursor</methodname>-Beispiel</title>
<para>
Im folgenden Beispiel gibt das PDOStatement-Objekt
<varname>$stmt</varname> mehrere Zeilen zurück, aber die Anwendung ruft
nur die erste Zeile ab, wodurch das PDOStatement-Objekt in einem Zustand
mit nicht abgerufenen Zeilen verbleibt. Um sicherzustellen, dass die
Anwendung mit allen Datenbanktreibern funktioniert, wird hier
<methodname>PDOStatement::closeCursor</methodname> für
<varname>$stmt</varname> aufgerufen, bevor das PDOStatement-Objekt
<varname>$otherStmt</varname> ausgeführt wird.
</para>
<programlisting role="php">
<![CDATA[
<?php
/* Erstellen eines PDOStatement-Objekts */
$stmt = $dbh->prepare('SELECT foo FROM bar');
/* Erstellen eines zweiten PDOStatement-Objekts */
$otherStmt = $dbh->prepare('SELECT foobaz FROM foobar');
/* Ausführen der ersten Anweisung */
$stmt->execute();
/* Nur die erste Zeile der Ergebnisse wird abgerufen */
$stmt->fetch();
/* Bei manchen Treibern kann der folgende Aufruf von closeCursor() erforderlich sein */
$stmt->closeCursor();
/* Nun kann die zweite Anweisung ausgeführt werden */
$otherStmt->execute();
?>
]]>
</programlisting>
</example>
</para>
</refsect1>
<refsect1 role="seealso">
&reftitle.seealso;
<para>
<simplelist>
<member><methodname>PDOStatement::execute</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
-->