forked from php/doc-ja
-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy pathreference.xml
204 lines (194 loc) · 7 KB
/
reference.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
204
<?xml version="1.0" encoding="utf-8"?>
<!-- $Revision$ -->
<!-- EN-Revision: 6b5b64c2552eba77e78556b9ab62f6d64aacff8e Maintainer: takagi Status: ready -->
<!-- CREDITS: shimooka,mumumu -->
<reference xml:id="ref.pdo-mysql" xmlns="http://docbook.org/ns/docbook">
<?phpdoc extension-membership="bundledexternal" ?>
<title>MySQL 関数 (PDO_MYSQL)</title>
<titleabbrev>MySQL (PDO)</titleabbrev>
<partintro>
<section xml:id="ref.pdo-mysql.intro">
&reftitle.intro;
<para>
PDO_MYSQL は、PHP から MySQL データベースへのアクセスを可能にするための
<link linkend="intro.pdo">PHP Data
Objects (PDO) インターフェイス</link> を実装したドライバです。
</para>
<para>
PDO_MYSQLは、
デフォルトでエミュレートされたプリペアドステートメントを使います。
</para>
<para>
<emphasis role="bold">MySQL 8</emphasis>
</para>
<para>
PHP 7.1.16 より前のバージョン、もしくは PHP 7.2.4 より前の 7.2系の PHP では、
MySQL 8 サーバーのデフォルトパスワードプラグインを
<emphasis>mysql_native_password</emphasis> に設定するようにしてください。
さもないと、
<emphasis>The server requested authentication method unknown to the client [caching_sha2_password]</emphasis>
のようなエラーを見ることになります。たとえあなたが
<emphasis>caching_sha2_password</emphasis> を使っていなくても、です。
</para>
<para>
これは MySQL 8 のデフォルトが 古い PHP (mysqlnd)
のリリースが認識していないプラグイン caching_sha2_password だからです。
かわりに、<filename>my.cnf</filename> の設定を
<literal>default_authentication_plugin=mysql_native_password</literal>
と変更してください。
<emphasis>caching_sha2_password</emphasis> プラグインは、
PHP 7.4.4 以降で完全にサポートされました。
これより前のバージョンでは、
<link linkend="book.mysql-xdevapi">mysql_xdevapi</link>
拡張モジュールでサポートされています。
</para>
<warning>
<para>
注意: MySQL のテーブル型 (ストレージエンジン) の中には、
トランザクションをサポートしていないものがあります。
トランザクションをサポートしていないテーブル型を使用して
トランザクションを使用するコードを書くと、
MySQL はトランザクションが正常に使用できたかのように振舞います。
さらに、DDL クエリを実行する際には、
実行中のトランザクションが暗黙的にコミットされます。
</para>
</warning>
<note>
<para>
MySQL ドライバは、
<methodname>PDOStatement::bindParam</methodname> メソッドで
<constant>PDO::PARAM_INPUT_OUTPUT</constant>
を適切にサポートしていません。使うことはできますが、
値が更新されません。(つまり、出力が無視されています)
</para>
</note>
</section>
&reference.pdo-mysql.configure;
&reference.pdo-mysql.constants;
&reference.pdo-mysql.ini;
</partintro>
<refentry xml:id="ref.pdo-mysql.connection">
<refnamediv>
<refname>PDO_MYSQL DSN</refname>
<refpurpose>MySQL データベースに接続する</refpurpose>
</refnamediv>
<refsect1 role="description">
&reftitle.description;
<para>
PDO_MYSQL データソース名 (DSN) は以下の要素で構成されます。
<variablelist>
<varlistentry>
<term>DSN 接頭辞</term>
<listitem>
<para>
DSN 接頭辞は <userinput>mysql:</userinput> です。
</para>
</listitem>
</varlistentry>
<varlistentry>
<term><literal>host</literal></term>
<listitem>
<para>
データベースサーバーが存在するホスト名を指定します。
</para>
</listitem>
</varlistentry>
<varlistentry>
<term><literal>port</literal></term>
<listitem>
<para>
データベースサーバーが待機しているポートを指定します。
</para>
</listitem>
</varlistentry>
<varlistentry>
<term><literal>dbname</literal></term>
<listitem>
<para>
データベース名を指定します。
</para>
</listitem>
</varlistentry>
<varlistentry>
<term><literal>unix_socket</literal></term>
<listitem>
<para>
MySQL の unix ソケットを指定します (<literal>host</literal>
あるいは <literal>port</literal> と同時に使用することはできません)。
</para>
</listitem>
</varlistentry>
<varlistentry>
<term><literal>charset</literal></term>
<listitem>
<para>
文字セット。詳細は、
<link linkend="mysqlinfo.concepts.charset">文字セットの概念</link>
を参照ください。
</para>
</listitem>
</varlistentry>
</variablelist>
</para>
</refsect1>
<refsect1 role="examples">
&reftitle.examples;
<para>
<example>
<title>PDO_MYSQL DSN の例</title>
<para>
以下の例は、MySQL データベースに接続するための PDO_MYSQL DSN
を表します。
<programlisting>
<![CDATA[
mysql:host=localhost;dbname=testdb
]]>
</programlisting>
より完全な例は、このようになります。
<programlisting>
<![CDATA[
mysql:host=localhost;port=3307;dbname=testdb
mysql:unix_socket=/tmp/mysql.sock;dbname=testdb
]]>
</programlisting>
</para>
</example>
</para>
</refsect1>
<refsect1 role="notes">
&reftitle.notes;
<note>
<title>Unix のみ</title>
<para>
ホスト名を <literal>"localhost"</literal> にすると、
サーバーへの接続はドメインソケットを使って行われます。
libmysqlclient を使って PDO_MYSQL をコンパイルした場合は、
ソケットファイルの場所は libmysqlclient のコンパイル時の場所になります。
mysqlnd を使って PDO_MYSQL をコンパイルした場合は、デフォルトのソケットは
<link linkend="ini.pdo-mysql.default-socket">
pdo_mysql.default_socket</link> の設定を使って作られます。
</para>
</note>
</refsect1>
</refentry>
</reference>
<!-- 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
-->