/
prepare.xml
188 lines (165 loc) · 5.88 KB
/
prepare.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
<?xml version="1.0" encoding="utf-8"?>
<!-- $Revision$ -->
<!-- EN-Revision: 63b99082ef83eade08151f8cb528246fded81db9 Maintainer: takagi Status: ready -->
<!-- Credits: mumumu -->
<refentry xml:id="mysqli.prepare" xmlns="http://docbook.org/ns/docbook">
<refnamediv>
<refname>mysqli::prepare</refname>
<refname>mysqli_prepare</refname>
<refpurpose>実行するための SQL文 を準備する</refpurpose>
</refnamediv>
<refsect1 role="description">
&reftitle.description;
<para>&style.oop;</para>
<methodsynopsis role="mysqli">
<modifier>public</modifier> <type class="union"><type>mysqli_stmt</type><type>false</type></type><methodname>mysqli::prepare</methodname>
<methodparam><type>string</type><parameter>query</parameter></methodparam>
</methodsynopsis>
<para>&style.procedural;</para>
<methodsynopsis>
<type class="union"><type>mysqli_stmt</type><type>false</type></type><methodname>mysqli_prepare</methodname>
<methodparam><type>mysqli</type><parameter>mysql</parameter></methodparam>
<methodparam><type>string</type><parameter>query</parameter></methodparam>
</methodsynopsis>
<para>
SQL文を準備し、後でそれを操作するために使用する
ステートメントハンドルを返します。
クエリは、単一の SQL文である必要があります。
</para>
<para>
SQL文のテンプレートには、ゼロ個以上のパラメータマーカ
(<literal>?</literal>) を含めることができます。
パラメータマーカは、プレースホルダとも呼ばれています。
パラメータマーカは、SQL文を実行する前に
<function>mysqli_stmt_bind_param</function> を使用して
アプリケーション変数にバインドする必要があります。
</para>
</refsect1>
<refsect1 role="parameters">
&reftitle.parameters;
<para>
<variablelist>
&mysqli.link.description;
<varlistentry>
<term><parameter>query</parameter></term>
<listitem>
<para>
クエリを表す文字列。
単一のSQL文である必要があります。
</para>
<para>
SQL文には、ゼロ個以上のパラメータマーカを含めることができますます。
パラメータマーカはクエスチョンマーク(<literal>?</literal>) を適切な位置に置くことで埋め込みます。
</para>
<note>
<para>
パラメータのマーカは、それが SQL 文の適切な位置にある場合のみ有効です。
例えば <literal>INSERT</literal> 文の
<literal>VALUES()</literal> リストの中 (行に登録するカラムの値を指定する)
や <literal>WHERE</literal> 句でカラムのデータと比較する値などが
適切な位置の例です。
しかし、識別子 (テーブルやカラムの名前) には使用できません。
</para>
</note>
</listitem>
</varlistentry>
</variablelist>
</para>
</refsect1>
<refsect1 role="returnvalues">
&reftitle.returnvalues;
<para>
<function>mysqli_prepare</function> はステートメントオブジェクトを返します。
エラー時には &false; を返します。
</para>
</refsect1>
<refsect1 role="errors">
&reftitle.errors;
&mysqli.conditionalexception;
</refsect1>
<refsect1 role="examples">
&reftitle.examples;
<example>
<title><methodname>mysqli::prepare</methodname> の例</title>
<para>&style.oop;</para>
<programlisting role="php">
<![CDATA[
<?php
mysqli_report(MYSQLI_REPORT_ERROR | MYSQLI_REPORT_STRICT);
$mysqli = new mysqli("localhost", "my_user", "my_password", "world");
$city = "Amersfoort";
/* プリペアドステートメントを作成します。*/
$stmt = $mysqli->prepare("SELECT District FROM City WHERE Name=?");
/* マーカにパラメータをバインドします */
$stmt->bind_param("s", $city);
/* クエリを実行します */
$stmt->execute();
/* 結果変数をバインドします */
$stmt->bind_result($district);
/* 値を取得します */
$stmt->fetch();
printf("%s is in district %s\n", $city, $district);
]]>
</programlisting>
<para>&style.procedural;</para>
<programlisting role="php">
<![CDATA[
<?php
mysqli_report(MYSQLI_REPORT_ERROR | MYSQLI_REPORT_STRICT);
$link = mysqli_connect("localhost", "my_user", "my_password", "world");
$city = "Amersfoort";
/* プリペアドステートメントを作成します */
$stmt = mysqli_prepare($link, "SELECT District FROM City WHERE Name=?");
/* マーカにパラメータをバインドします */
mysqli_stmt_bind_param($stmt, "s", $city);
/* クエリを実行します */
mysqli_stmt_execute($stmt);
/* 結果変数をバインドします */
mysqli_stmt_bind_result($stmt, $district);
/* 値を取得します */
mysqli_stmt_fetch($stmt);
printf("%s is in district %s\n", $city, $district);
]]>
</programlisting>
&examples.outputs;
<screen>
<![CDATA[
Amersfoort is in district Utrecht
]]>
</screen>
</example>
</refsect1>
<refsect1 role="seealso">
&reftitle.seealso;
<para>
<simplelist>
<member><function>mysqli_stmt_execute</function></member>
<member><function>mysqli_stmt_fetch</function></member>
<member><function>mysqli_stmt_bind_param</function></member>
<member><function>mysqli_stmt_bind_result</function></member>
<member><function>mysqli_stmt_get_result</function></member>
<member><function>mysqli_stmt_close</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
-->