-
Notifications
You must be signed in to change notification settings - Fork 79
/
Copy pathmysql-fetch-assoc.xml
168 lines (150 loc) · 4.87 KB
/
mysql-fetch-assoc.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
<?xml version="1.0" encoding="utf-8"?>
<!-- $Revision$ -->
<!-- EN-Revision: ff4017b6334dae2d5353fe99df8089a828795324 Maintainer: takagi Status: ready -->
<!-- CREDITS: hirokawa,shimooka -->
<refentry xml:id="function.mysql-fetch-assoc" xmlns="http://docbook.org/ns/docbook">
<refnamediv>
<refname>mysql_fetch_assoc</refname>
<refpurpose>連想配列として結果の行を取得する</refpurpose>
</refnamediv>
<refsynopsisdiv>
<warning>
&mysql.alternative.note;
<simplelist role="alternatives">
<member><function>mysqli_fetch_assoc</function></member>
<member>
<methodname>PDOStatement::fetch</methodname>
の <parameter>mode</parameter> に <constant>PDO::FETCH_ASSOC</constant>
を指定する
</member>
</simplelist>
</warning>
</refsynopsisdiv>
<refsect1 role="description">
&reftitle.description;
<methodsynopsis>
<type>array</type><methodname>mysql_fetch_assoc</methodname>
<methodparam><type>resource</type><parameter>result</parameter></methodparam>
</methodsynopsis>
<para>
取得した行に対応する連想配列を返し、内部のデータポインタを前に進めます。
<function>mysql_fetch_assoc</function> は、
<function>mysql_fetch_array</function> の 2 番目のパラメータを
MYSQL_ASSOC に指定してコールするのと同じ働きをします。つまり、
連想配列のみを返します。
</para>
</refsect1>
<refsect1 role="parameters">
&reftitle.parameters;
<para>
<variablelist>
&mysql.result.description;
</variablelist>
</para>
</refsect1>
<refsect1 role="returnvalues">
&reftitle.returnvalues;
<para>
取得した行に対応する文字列の連想配列を返します。行がもうない場合には
&false; を返します。
</para>
<para>
結果の複数のカラムが同じフィールド名を有している場合、最後のカラ
ムが優先されます。同じ名前を有する他のカラムにアクセスするには、
<function>mysql_fetch_row</function>を使用して数値添字を返すか、
エイリアス名を追加する必要があります。エイリアスの説明については、
<function>mysql_fetch_array</function>の例を参照ください。
</para>
</refsect1>
<refsect1 role="examples">
&reftitle.examples;
<para>
<example>
<title><function>mysql_fetch_assoc</function> のいろいろな例</title>
<programlisting role="php">
<![CDATA[
<?php
$conn = mysql_connect("localhost", "mysql_user", "mysql_password");
if (!$conn) {
echo "Unable to connect to DB: " . mysql_error();
exit;
}
if (!mysql_select_db("mydbname")) {
echo "Unable to select mydbname: " . mysql_error();
exit;
}
$sql = "SELECT id as userid, fullname, userstatus
FROM sometable
WHERE userstatus = 1";
$result = mysql_query($sql);
if (!$result) {
echo "Could not successfully run query ($sql) from DB: " . mysql_error();
exit;
}
if (mysql_num_rows($result) == 0) {
echo "No rows found, nothing to print so am exiting";
exit;
}
// データ行が存在する間、それを $row に連想配列形式でセットする
// 注: 結果が 1 行であることがわかっているのなら、ループを利用しなくてもよい
// 注: ループ内で extract($row); を実行すれば、
// $userid, $fullname, そして $userstatus を利用できる
while ($row = mysql_fetch_assoc($result)) {
echo $row["userid"];
echo $row["fullname"];
echo $row["userstatus"];
}
mysql_free_result($result);
?>
]]>
</programlisting>
</example>
</para>
</refsect1>
<refsect1 role="notes">
&reftitle.notes;
<note>
<title>パフォーマンス</title>
<para>
特筆すべき点として、<function>mysql_fetch_assoc</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_array</function></member>
<member><function>mysql_data_seek</function></member>
<member><function>mysql_query</function></member>
<member><function>mysql_error</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
-->