Обновление раздела PDO (#1020)

This commit is contained in:
Sergey Panteleev
2024-12-13 12:09:52 +03:00
committed by GitHub
parent fb7d787e8d
commit 059b54947d
28 changed files with 1556 additions and 385 deletions

View File

@ -1,5 +1,5 @@
<?xml version="1.0" encoding="utf-8"?>
<!-- EN-Revision: 9ed2d17d581d2c72282dee0b9be3b5a49dabf108 Maintainer: rjhdby Status: ready -->
<!-- EN-Revision: 70ef72d94f4d5c7d7ec7492e97563d2463d56d14 Maintainer: rjhdby Status: ready -->
<!-- Reviewed: no -->
<section xml:id="ref.pdo-mysql.installation" xmlns="http://docbook.org/ns/docbook" xmlns:xlink="http://www.w3.org/1999/xlink">
&reftitle.install;
@ -45,7 +45,8 @@ $ ./configure --with-pdo-mysql --with-mysql-sock=/var/mysql/mysql.sock
</screen>
</para>
<para>
Поддержка SSL включается, используя соответствующую <link linkend="pdo-mysql.constants">константу PDO_MySQL</link>,
Поддержка <acronym>SSL</acronym> включается, используя соответствующую
константу <constant>Pdo\Mysql::ATTR_SSL_<replaceable>*</replaceable></constant>,
которая эквивалентна вызову <link xlink:href="&url.mysql.docs.ssl.set;">API MySQL-функции mysql_ssl_set() в C</link>.
К тому же SSL не может быть включён с помощью <classname>PDO::setAttribute</classname>, потому что соединение
уже существует. Смотрите документацию MySQL о <link xlink:href="&url.mysql.docs.ssl.using;">подключении к

View File

@ -1,42 +1,19 @@
<?xml version="1.0" encoding="utf-8"?>
<!-- EN-Revision: 71db1981e4ac6013592a0cad325f0136f9d57e21 Maintainer: mch Status: ready -->
<!-- EN-Revision: b2a7a5fab7231fa8634096f111ae0fa0dc60bcfe Maintainer: mch Status: ready -->
<!-- Reviewed: no -->
<section xml:id="pdo-mysql.constants" xmlns="http://docbook.org/ns/docbook">
<section xml:id="ref.pdo-mysql.constants" xmlns="http://docbook.org/ns/docbook">
&reftitle.constants;
&pdo.driver-constants;
<variablelist>
<varlistentry xml:id="pdo.constants.mysql-attr-use-buffered-query">
<term>
<constant>PDO::MYSQL_ATTR_USE_BUFFERED_QUERY</constant>
(<type>bool</type>)
(<type>int</type>)
</term>
<listitem>
<simpara>
По умолчанию запросы выполняются
в <link linkend="mysqlinfo.concepts.buffering">буферизованном режиме</link>.
Драйвер MySQL будет использовать небуферизованный режим,
если для объекта <classname>PDO</classname>
значение этого атрибута установить как &false;.
&Alias; <constant>Pdo\Mysql::ATTR_USE_BUFFERED_QUERY</constant>
</simpara>
<para>
<example><title>Установка небуферизованного режима MySQL</title>
<programlisting role="php">
<![CDATA[
<?php
$pdo = new PDO("mysql:host=localhost;dbname=world", 'my_user', 'my_password');
$pdo->setAttribute(PDO::MYSQL_ATTR_USE_BUFFERED_QUERY, false);
$unbufferedResult = $pdo->query("SELECT Name FROM City");
foreach ($unbufferedResult as $row) {
echo $row['Name'] . PHP_EOL;
}
?>
]]>
</programlisting>
</example>
</para>
</listitem>
</varlistentry>
<varlistentry xml:id="pdo.constants.mysql-attr-local-infile">
@ -45,47 +22,32 @@ foreach ($unbufferedResult as $row) {
(<type>int</type>)
</term>
<listitem>
<para>
Включить <literal>LOAD LOCAL INFILE</literal>.
</para>
<para>
Обратите внимание, что эту константу можно использовать только
в массиве <parameter>driver_options</parameter> при создании
дескриптора новой базы данных.
</para>
<simpara>
&Alias; <constant>Pdo\Mysql::ATTR_LOCAL_INFILE</constant>
</simpara>
</listitem>
</varlistentry>
<varlistentry xml:id="pdo.constants.mysql-attr-local-infile-directory">
<term>
<constant>PDO::MYSQL_ATTR_LOCAL_INFILE_DIRECTORY</constant>
(<type>string</type>)
(<type>int</type>)
</term>
<listitem>
<para>
Позволяет ограничить загрузку LOCAL DATA файлами, расположенными в указанном
каталоге. Доступно, начиная с версии PHP 8.1.0.
</para>
<para>
Обратите внимание, что эта константа может использоваться только в массиве <parameter>driver_options</parameter>
при создании нового дескриптора базы данных.
</para>
<simpara>
&Alias; <constant>Pdo\Mysql::ATTR_LOCAL_INFILE_DIRECTORY</constant>.
Константа доступна с PHP 8.1.0.
</simpara>
</listitem>
</varlistentry>
<varlistentry xml:id="pdo.constants.mysql-attr-init-command">
<term>
<constant>PDO::MYSQL_ATTR_INIT_COMMAND</constant>
(<type>string</type>)
(<type>int</type>)
</term>
<listitem>
<para>
Команда, которую необходимо выполнить при подключении к MySQL-серверу.
Также будет автоматически выполнена при переподключении.
</para>
<para>
Обратите внимание, что эта константа может быть использована только
в массиве <parameter>driver_options</parameter> при создании
дескриптора новой базы данных.
</para>
<simpara>
&Alias; <constant>Pdo\Mysql::ATTR_INIT_COMMAND</constant>
</simpara>
</listitem>
</varlistentry>
<varlistentry xml:id="pdo.constants.mysql-attr-read-default-file">
@ -94,11 +56,9 @@ foreach ($unbufferedResult as $row) {
(<type>int</type>)
</term>
<listitem>
<para>
Чтение именованных параметров из файла <filename>my.cnf</filename>.
Эта опция недоступна, если используется mysqlnd, потому что
mysqlnd не читает файлы конфигурации MySQL.
</para>
<simpara>
&Alias; <constant>Pdo\Mysql::ATTR_READ_DEFAULT_FILE</constant>
</simpara>
</listitem>
</varlistentry>
<varlistentry xml:id="pdo.constants.mysql-attr-read-default-group">
@ -107,12 +67,9 @@ foreach ($unbufferedResult as $row) {
(<type>int</type>)
</term>
<listitem>
<para>
Чтение именованной группы параметров из файла <filename>my.cnf</filename>
или из файла, определённого в константе <constant>MYSQL_READ_DEFAULT_FILE</constant>.
Эта опция недоступна, если используется mysqlnd, потому что
mysqlnd не читает файлы конфигурации MySQL.
</para>
<simpara>
&Alias; <constant>Pdo\Mysql::ATTR_READ_DEFAULT_GROUP</constant>
</simpara>
</listitem>
</varlistentry>
<varlistentry xml:id="pdo.constants.mysql-attr-max-buffer-size">
@ -121,11 +78,9 @@ foreach ($unbufferedResult as $row) {
(<type>int</type>)
</term>
<listitem>
<para>
Максимальный размер буфера. По умолчанию равен 1 Мб.
Эта константа не поддерживается при компиляции вместе
с mysqlnd.
</para>
<simpara>
&Alias; <constant>Pdo\Mysql::ATTR_MAX_BUFFER_SIZE</constant>
</simpara>
</listitem>
</varlistentry>
<varlistentry xml:id="pdo.constants.mysql-attr-direct-query">
@ -134,10 +89,9 @@ foreach ($unbufferedResult as $row) {
(<type>int</type>)
</term>
<listitem>
<para>
Выполнять прямые запросы, не использовать
подготовленные конструкции.
</para>
<simpara>
&Alias; <constant>PDO::ATTR_EMULATE_PREPARES</constant>
</simpara>
</listitem>
</varlistentry>
<varlistentry xml:id="pdo.constants.mysql-attr-found-rows">
@ -146,10 +100,9 @@ foreach ($unbufferedResult as $row) {
(<type>int</type>)
</term>
<listitem>
<para>
Возвращает количество найденных (совпавших) строк, а
не количество изменённых строк.
</para>
<simpara>
&Alias; <constant>Pdo\Mysql::ATTR_FOUND_ROWS</constant>
</simpara>
</listitem>
</varlistentry>
<varlistentry xml:id="pdo.constants.mysql-attr-ignore-space">
@ -158,10 +111,9 @@ foreach ($unbufferedResult as $row) {
(<type>int</type>)
</term>
<listitem>
<para>
Разрешает пробелы после имён функций.
Делает все имена функций зарезервированными словами.
</para>
<simpara>
&Alias; <constant>Pdo\Mysql::ATTR_IGNORE_SPACE</constant>
</simpara>
</listitem>
</varlistentry>
<varlistentry xml:id="pdo.constants.mysql-attr-compress">
@ -170,9 +122,21 @@ foreach ($unbufferedResult as $row) {
(<type>int</type>)
</term>
<listitem>
<para>
Включить сжатие сетевого соединения.
</para>
<simpara>
&Alias; <constant>Pdo\Mysql::ATTR_COMPRESS</constant>
</simpara>
</listitem>
</varlistentry>
<varlistentry xml:id="pdo.constants.mysql-attr-server-public-key">
<term>
<constant>PDO::MYSQL_ATTR_SERVER_PUBLIC_KEY</constant>
(<type>int</type>)
</term>
<listitem>
<simpara>
&Alias; <constant>Pdo\Mysql::ATTR_SERVER_PUBLIC_KEY</constant>
</simpara>
</listitem>
</varlistentry>
@ -182,9 +146,9 @@ foreach ($unbufferedResult as $row) {
(<type>int</type>)
</term>
<listitem>
<para>
Путь к файлу сертификата SSL.
</para>
<simpara>
&Alias; <constant>Pdo\Mysql::ATTR_SSL_CA</constant>
</simpara>
</listitem>
</varlistentry>
@ -194,10 +158,9 @@ foreach ($unbufferedResult as $row) {
(<type>int</type>)
</term>
<listitem>
<para>
Путь к директории, которая содержит SSL-сертификаты доверенных центров (CA),
хранящиеся в формате <acronym>PEM</acronym>.
</para>
<simpara>
&Alias; <constant>Pdo\Mysql::ATTR_SSL_CAPATH</constant>
</simpara>
</listitem>
</varlistentry>
@ -207,9 +170,9 @@ foreach ($unbufferedResult as $row) {
(<type>int</type>)
</term>
<listitem>
<para>
Путь к файлу с SSL-сертификатом.
</para>
<simpara>
&Alias; <constant>Pdo\Mysql::ATTR_SSL_CERT</constant>
</simpara>
</listitem>
</varlistentry>
@ -219,10 +182,9 @@ foreach ($unbufferedResult as $row) {
(<type>int</type>)
</term>
<listitem>
<para>
Список из одного или более допустимых шифров для использования в SSL-шифровании в формате,
который понимает OpenSSL. Например: <literal>DHE-RSA-AES256-SHA:AES128-SHA</literal>
</para>
<simpara>
&Alias; <constant>Pdo\Mysql::ATTR_SSL_CIPHER</constant>
</simpara>
</listitem>
</varlistentry>
@ -232,9 +194,9 @@ foreach ($unbufferedResult as $row) {
(<type>int</type>)
</term>
<listitem>
<para>
Путь к файлу с ключом SSL.
</para>
<simpara>
&Alias; <constant>Pdo\Mysql::ATTR_SSL_KEY</constant>
</simpara>
</listitem>
</varlistentry>
@ -242,38 +204,30 @@ foreach ($unbufferedResult as $row) {
<term>
<constant>PDO::MYSQL_ATTR_SSL_VERIFY_SERVER_CERT</constant>
(<type>int</type>)
</term>
<listitem>
<para>
Предлагает способ отключения проверки SSL-сертификата сервера.
Эта опция доступна только с драйвером mysqlnd.
</para>
<para>
&version.exists.asof; 7.0.18 и PHP 7.1.4.
</para>
</listitem>
</term>
<listitem>
<simpara>
&Alias; <constant>Pdo\Mysql::ATTR_SSL_VERIFY_SERVER_CERT</constant>
Константа доступна с PHP 7.0.18 и PHP 7.1.4.
</simpara>
</listitem>
</varlistentry>
<varlistentry xml:id="pdo.constants.mysql-attr-multi-statements">
<term>
<constant>PDO::MYSQL_ATTR_MULTI_STATEMENTS</constant>
(<type>int</type>)
</term>
<listitem>
<para>
Если установлено как &false;, запрещает запуск множественных запросов,
как для <function>PDO::prepare</function>, так и для <function>PDO::query</function>.
</para>
<para>
Обратите внимание, что эта константа может быть использована только
в массиве <parameter>driver_options</parameter> при создании нового
дескриптора БД.
</para>
<simpara>
&Alias; <constant>Pdo\Mysql::ATTR_MULTI_STATEMENTS</constant>
</simpara>
</listitem>
</varlistentry>
</variablelist>
</section><!-- Keep this comment at the end of the file
</section>
<!-- Keep this comment at the end of the file
Local variables:
mode: sgml
sgml-omittag:t

View File

@ -1,178 +1,180 @@
<?xml version="1.0" encoding="utf-8"?>
<!-- EN-Revision: ed851c6bbc75edca2706ea43f224278dd0538a6f Maintainer: rjhdby Status: ready -->
<!-- EN-Revision: 70ef72d94f4d5c7d7ec7492e97563d2463d56d14 Maintainer: rjhdby Status: ready -->
<!-- Reviewed: no -->
<reference xml:id="ref.pdo-mysql" xmlns="http://docbook.org/ns/docbook">
<?phpdoc extension-membership="bundledexternal" ?>
<title>Драйвер PDO_MYSQL: функции БД MySQL</title>
<titleabbrev>MySQL</titleabbrev>
<partintro>
<reference xml:id="ref.pdo-mysql" xmlns="http://docbook.org/ns/docbook">
<?phpdoc extension-membership="bundledexternal" ?>
<title>Драйвер PDO_MYSQL: функции БД MySQL</title>
<titleabbrev>MySQL</titleabbrev>
<partintro>
<section xml:id="pdo-mysql.intro">
&reftitle.intro;
<para>
PDO_MYSQL — драйвер, через который PHP получает доступ к базам данных MySQL.
Для этого драйвер реализует интерфейс модуля <link linkend="intro.pdo">PDO</link>.
</para>
<para>
Драйвер PDO_MYSQL по умолчанию использует эмулированную подготовку.
</para>
<section xml:id="ref.pdo-mysql.intro">
&reftitle.intro;
<para>
PDO_MYSQL — драйвер, через который PHP получает доступ к базам данных MySQL.
Для этого драйвер реализует интерфейс модуля <link linkend="intro.pdo">PDO</link>.
</para>
<para>
Драйвер PDO_MYSQL по умолчанию использует эмулированную подготовку.
</para>
<para>
<emphasis role="bold">MySQL 8</emphasis>
</para>
<para>
<emphasis role="bold">MySQL 8</emphasis>
</para>
<para>
При запуске PHP до версии 7.1.16 или PHP с версии 7.2 до версии 7.2.4
в качестве плагина шифрования паролей по умолчанию для сервера 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
в качестве плагина по умолчанию указан caching_sha2_password,
который не распознаётся старыми выпусками PHP (драйвером mysqlnd).
Вместо него в файле конфигурации сервера <filename>my.cnf</filename> указывают —
<literal>default_authentication_plugin=mysql_native_password</literal>.
Плагин <emphasis>caching_sha2_password</emphasis>
получил полную поддержку начиная с PHP 7.4.4. В предыдущих версиях PHP
его поддерживает модуль <link linkend="book.mysql-xdevapi">mysql_xdevapi</link>.
</para>
<para>
При запуске PHP до версии 7.1.16 или PHP с версии 7.2 до версии 7.2.4
в качестве плагина шифрования паролей по умолчанию для сервера 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
в качестве плагина по умолчанию указан caching_sha2_password,
который не распознаётся старыми выпусками PHP (драйвером mysqlnd).
Вместо него в файле конфигурации сервера <filename>my.cnf</filename> указывают —
<literal>default_authentication_plugin=mysql_native_password</literal>.
Плагин <emphasis>caching_sha2_password</emphasis>
получил полную поддержку начиная с PHP 7.4.4. В предыдущих версиях PHP
его поддерживает модуль <link linkend="book.mysql-xdevapi">mysql_xdevapi</link>.
</para>
<warning>
<warning>
<para>
Осторожно: MySQL-таблицы подсистемы хранения данных не поддерживают транзакции.
БД MySQL сделает вид, что транзакция успешно началась,
если в коде, который работает с транзакционной базой данных,
указали таблицу, которая не поддерживает транзакции.
Кроме того, каждый выполненный DDL-запрос
будет неявно фиксировать незавершённые транзакции — то есть завершать открытые транзакции
и выполнять стек незавершённых запросов.
</para>
</warning>
<note>
<para>
Драйвер MySQL неправильно обрабатывает бит <constant>PDO::PARAM_INPUT_OUTPUT</constant>
в методе <methodname>PDOStatement::bindParam</methodname>;
хотя такие параметры и разрешается указывать,
они не обновляются (т. е. фактический вывод игнорируется).
</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>DSN-строка подключения через драйвер PDO_MYSQL</refname>
<refpurpose>Соединение с базой данных MySQL</refpurpose>
</refnamediv>
<refsect1 role="description">
&reftitle.description;
<para>
DSN-строка подключения (англ. сокр.: Data Source Name — имя источника данных)
для драйвера PDO_SQLSRV состоит из следующих элементов:
<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>
Unix-сокет БД MySQL. Сокет нельзя указывать вместе с аргументом
<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>Примеры DSN-строк подключения через драйвер PDO_MYSQL</title>
<para>
Осторожно: MySQL-таблицы подсистемы хранения данных не поддерживают транзакции.
БД MySQL сделает вид, что транзакция успешно началась,
если в коде, который работает с транзакционной базой данных,
указали таблицу, которая не поддерживает транзакции.
Кроме того, каждый выполненный DDL-запрос
будет неявно фиксировать незавершённые транзакции — то есть завершать открытые транзакции
и выполнять стек незавершённых запросов.
</para>
</warning>
<note>
<para>
Драйвер MySQL неправильно обрабатывает бит <constant>PDO::PARAM_INPUT_OUTPUT</constant>
в методе <methodname>PDOStatement::bindParam</methodname>;
хотя такие параметры и разрешается указывать,
они не обновляются (т. е. фактический вывод игнорируется).
</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>DSN-строка подключения через драйвер PDO_MYSQL</refname>
<refpurpose>Соединение с базой данных MySQL</refpurpose>
</refnamediv>
<refsect1 role="description">
&reftitle.description;
<para>
DSN-строка подключения (англ. сокр.: Data Source Name — имя источника данных)
для драйвера PDO_SQLSRV состоит из следующих элементов:
<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>
Unix-сокет БД MySQL. Сокет нельзя указывать вместе с аргументом
<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>Примеры DSN-строк подключения через драйвер PDO_MYSQL</title>
<para>
Следующий пример показывает DSN-строку подключения через драйвер PDO_MYSQL
для соединения с базой данных MySQL:
<programlisting>
Следующий пример показывает DSN-строку подключения через драйвер PDO_MYSQL
для соединения с базой данных MySQL:
<programlisting>
<![CDATA[
mysql:host=localhost;dbname=testdb
]]>
</programlisting>
Более полные примеры:
<programlisting>
</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.
Установка сокета по умолчанию будет доступна через директиву
<link linkend="ini.pdo-mysql.default-socket">pdo_mysql.default_socket</link>,
если драйвер PDO_MYSQL скомпилировали с драйвером mysqlnd.
</programlisting>
</para>
</note>
</refsect1>
</refentry>
</example>
</para>
</refsect1>
</reference><!-- Keep this comment at the end of the file
<refsect1 role="notes">
&reftitle.notes;
<note>
<title>Только Unix:</title>
<para>
Соединение с сервером выполняется через сокет домена,
если имя хоста установили как <literal>"localhost"</literal>.
Файла сокета будет лежать в каталоге, в котором скомпилировали клиент libmysqlclient,
если драйвер PDO_MYSQL скомпилировали с библиотекой libmysqlclient.
Установка сокета по умолчанию будет доступна через директиву
<link linkend="ini.pdo-mysql.default-socket">pdo_mysql.default_socket</link>,
если драйвер PDO_MYSQL скомпилировали с драйвером mysqlnd.
</para>
</note>
</refsect1>
</refentry>
</reference>
&reference.pdo-mysql.pdo-mysql;
<!-- Keep this comment at the end of the file
Local variables:
mode: sgml
sgml-omittag:t