-
Notifications
You must be signed in to change notification settings - Fork 79
/
Copy pathmysql-fetch-array.xml
203 lines (186 loc) · 6.23 KB
/
mysql-fetch-array.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
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
<?xml version="1.0" encoding="utf-8"?>
<!-- $Revision$ -->
<!-- EN-Revision: 4754397753fd79f1c846868b66a2448babab1c54 Maintainer: takagi Status: ready -->
<!-- CREDITS: hirokawa,shimooka -->
<refentry xml:id="function.mysql-fetch-array" xmlns="http://docbook.org/ns/docbook">
<refnamediv>
<refname>mysql_fetch_array</refname>
<refpurpose>連想配列、添字配列、またはその両方として結果の行を取得する</refpurpose>
</refnamediv>
<refsynopsisdiv>
<warning>
&mysql.alternative.note;
<simplelist role="alternatives">
<member><function>mysqli_fetch_array</function></member>
<member><methodname>PDOStatement::fetch</methodname></member>
</simplelist>
</warning>
</refsynopsisdiv>
<refsect1 role="description">
&reftitle.description;
<methodsynopsis>
<type>array</type><methodname>mysql_fetch_array</methodname>
<methodparam><type>resource</type><parameter>result</parameter></methodparam>
<methodparam choice="opt"><type>int</type><parameter>result_type</parameter><initializer>MYSQL_BOTH</initializer></methodparam>
</methodsynopsis>
<para>
取得した行に対応する配列を返し、内部のデータポインタを前に進めます。
</para>
</refsect1>
<refsect1 role="parameters">
&reftitle.parameters;
<para>
<variablelist>
&mysql.result.description;
<varlistentry>
<term><parameter>result_type</parameter></term>
<listitem>
<para>
取得する配列の形式です。以下の定数値をとります。:
<constant>MYSQL_ASSOC</constant>,
<constant>MYSQL_NUM</constant>, そして
<constant>MYSQL_BOTH</constant>
</para>
</listitem>
</varlistentry>
</variablelist>
</para>
</refsect1>
<refsect1 role="returnvalues">
&reftitle.returnvalues;
<para>
取得した行をあらわす文字列の配列を返します。もし行が存在しない場合は &false;
を返します。返される配列の形式は、<parameter>result_type</parameter>
がどのように指定されているかによります。<constant>MYSQL_BOTH</constant>(デフォルト)
を利用すると、連想添字と数値添字を共に持つ配列を取得します。
<constant>MYSQL_ASSOC</constant> を利用すると(<function>
mysql_fetch_assoc</function> の動作と同様に)連想添字のみが取得され、
<constant>MYSQL_NUM</constant> を利用すると
(<function>mysql_fetch_row</function> の動作と同様に)数値添字のみが
取得されます。
</para>
<para>
結果の中で同じフィールド名のカラムが 2 つ以上ある場合、
最後のカラムが優先されます。
同名の他のカラムにアクセスするには、そのカラムの数値インデックスを
使うかまたはカラムの別名を定義する必要があります。
カラムの別名を定義した場合は、本来の列名でそのカラムにアクセスすることは
できません。
</para>
</refsect1>
<refsect1 role="examples">
&reftitle.examples;
<para>
<example>
<title>重複した列名に対して別名を定義する問い合わせ</title>
<programlisting role="sql">
<![CDATA[
SELECT table1.field AS foo, table2.field AS bar FROM table1, table2
]]>
</programlisting>
</example>
</para>
<para>
<example>
<title><function>mysql_fetch_array</function> を <constant>MYSQL_NUM</constant> とともに利用する</title>
<programlisting role="php">
<![CDATA[
<?php
mysql_connect("localhost", "mysql_user", "mysql_password") or
die("Could not connect: " . mysql_error());
mysql_select_db("mydb");
$result = mysql_query("SELECT id, name FROM mytable");
while ($row = mysql_fetch_array($result, MYSQL_NUM)) {
printf("ID: %s Name: %s", $row[0], $row[1]);
}
mysql_free_result($result);
?>
]]>
</programlisting>
</example>
</para>
<para>
<example>
<title><function>mysql_fetch_array</function> を <constant>MYSQL_ASSOC</constant> とともに利用する</title>
<programlisting role="php">
<![CDATA[
<?php
mysql_connect("localhost", "mysql_user", "mysql_password") or
die("Could not connect: " . mysql_error());
mysql_select_db("mydb");
$result = mysql_query("SELECT id, name FROM mytable");
while ($row = mysql_fetch_array($result, MYSQL_ASSOC)) {
printf("ID: %s Name: %s", $row["id"], $row["name"]);
}
mysql_free_result($result);
?>
]]>
</programlisting>
</example>
</para>
<para>
<example>
<title><function>mysql_fetch_array</function> を <constant>MYSQL_BOTH</constant> とともに利用する</title>
<programlisting role="php">
<![CDATA[
<?php
mysql_connect("localhost", "mysql_user", "mysql_password") or
die("Could not connect: " . mysql_error());
mysql_select_db("mydb");
$result = mysql_query("SELECT id, name FROM mytable");
while ($row = mysql_fetch_array($result, MYSQL_BOTH)) {
printf ("ID: %s Name: %s", $row[0], $row["name"]);
}
mysql_free_result($result);
?>
]]>
</programlisting>
</example>
</para>
</refsect1>
<refsect1 role="notes">
&reftitle.notes;
<note>
<title>パフォーマンス</title>
<para>
特筆すべき点として、<function>mysql_fetch_array</function> が
著しい付加価値があるにもかかわらず、
<function>mysql_fetch_row</function>より
<emphasis>それほど</emphasis>遅くはないということが言えます。
</para>
</note>
&database.field-case;
&database.fetch-null;
</refsect1>
<refsect1 role="seealso">
&reftitle.seealso;
<para>
<simplelist>
<member><function>mysql_fetch_row</function></member>
<member><function>mysql_fetch_assoc</function></member>
<member><function>mysql_data_seek</function></member>
<member><function>mysql_query</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
-->