Files
doc-fr/reference/pdo_mysql/reference.xml
Sergey Panteleev b353643ded Sync various sections (#248)
Co-authored-by: George Peter Banyard <girgias@php.net>
2022-06-23 14:36:49 +01:00

196 lines
6.4 KiB
XML

<?xml version="1.0" encoding="utf-8"?>
<!-- $Revision$ -->
<!-- EN-Revision: 54217f14f9ddeb734c7d439f44ce7491f66cc587 Maintainer: yannick Status: ready -->
<!-- Reviewed: no -->
<reference xml:id="ref.pdo-mysql" xmlns="http://docbook.org/ns/docbook">
<?phpdoc extension-membership="bundledexternal" ?>
<title>Fonctions MySQL (PDO_MYSQL)</title>
<titleabbrev>MySQL (PDO)</titleabbrev>
<partintro>
<section xml:id="pdo-mysql.intro">
&reftitle.intro;
<para>
PDO_MYSQL est un pilote qui implémente l'<link
linkend="intro.pdo">interface de PHP Data Objects (PDO)</link> pour
autoriser l'accès de PHP aux bases de données MySQL.
</para>
<para>
PDO_MYSQL utilises des requêtes préparées émulées par défaut.
</para>
<para>
<emphasis role="bold">MySQL 8</emphasis>
</para>
<para>
Si PHP est utilisé dans une version 7.1 antérieure à la version 7.1.16, ou PHP 7.2 antérieure à 7.2.4,
le plugin de mot de passe doit être défini à
<emphasis>mysql_native_password</emphasis> pour MySQL 8 Server, car sinon des
erreurs similaires à <emphasis>The server requested authentication method
unknown to the client [caching_sha2_password]</emphasis> peuvent apparaitre,
même si <emphasis>caching_sha2_password</emphasis> n'est pas utilisé.
</para>
<para>
Ceci est dû au fait que MySQL 8 utilise par défaut caching_sha2_password,
un plugin qui n'est pas reconnu par les anciennes versions de PHP (mysqlnd).
À la place il faut modifier le paramètre
<literal>default_authentication_plugin=mysql_native_password</literal> dans
<filename>my.cnf</filename>. Le plugin <emphasis>caching_sha2_password</emphasis>
sera supporté dans une version future de PHP. En attendant, l'extension
<link linkend="book.mysql-xdevapi">mysql_xdevapi</link> le supporte.
</para>
<warning>
<para>
Prendre garde toutefois : certains types de tables MySQL (moteur d'enregistrement)
ne supportent pas les transactions. Lorsque vous écrivez du code de base
de données transactionnel en utilisant un type de table qui ne supporte
pas les transactions, MySQL prétendra qu'une transaction était initiée
correctement. De plus, toute requête DLL publiée enverra implicitement
l'ensemble des transactions en attente.
</para>
</warning>
<note>
<para>
Le pilote MySQL ne supporte pas proprement <constant>PDO::PARAM_INPUT_OUTPUT</constant>
via <methodname>PDOStatement::bindParam</methodname>; tandis que de tel
paramètres peuvent être utilisé, il ne seront pas mis à jour
(c.à.d. la sortie actuel est ignoré).
</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>Connexion aux bases de données MySQL</refpurpose>
</refnamediv>
<refsect1 role="description">
&reftitle.description;
<para>
Le Data Source Name (DSN) de PDO_MYSQL est composé des éléments suivants :
<variablelist>
<varlistentry>
<term>Préfixe DSN</term>
<listitem>
<para>
Le préfixe DSN est <userinput>mysql:</userinput>.
</para>
</listitem>
</varlistentry>
<varlistentry>
<term><literal>host</literal></term>
<listitem>
<para>
L'hôte sur lequel le serveur de base de données se situe.
</para>
</listitem>
</varlistentry>
<varlistentry>
<term><literal>port</literal></term>
<listitem>
<para>
Le numéro de port où le serveur de base de données est en train
d'écouter.
</para>
</listitem>
</varlistentry>
<varlistentry>
<term><literal>dbname</literal></term>
<listitem>
<para>
Le nom de la base de données.
</para>
</listitem>
</varlistentry>
<varlistentry>
<term><literal>unix_socket</literal></term>
<listitem>
<para>
Le socket Unix MySQL (ne devrait pas être utilisé avec
<literal>host</literal> ou <literal>port</literal>).
</para>
</listitem>
</varlistentry>
<varlistentry>
<term><literal>charset</literal></term>
<listitem>
<para>
Le jeu de caractères. Voir la documentation sur les concepts
<link linkend="mysqlinfo.concepts.charset">des jeux de caractères</link>
pour plus d'informations.
</para>
</listitem>
</varlistentry>
</variablelist>
</para>
</refsect1>
<refsect1 role="examples">
&reftitle.examples;
<para>
<example>
<title>Exemples avec le DSN de PDO_MYSQL</title>
<para>
L'exemple suivant montre le DSN PDO_MYSQL pour se connecter aux bases
de données MySQL :
<programlisting>
<![CDATA[
mysql:host=localhost;dbname=testdb
]]>
</programlisting>
Exemples plus complets :
<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 seulement:</title>
<para>
Lorsque le nom d'hôte est <literal>"localhost"</literal>, la connexion est faite par un socket
Unix. Si PDO_MYSQL est compilé avec <literal>libmysqlclient</literal>, alors le fichier de socket est celui précisé à la
compilation de <literal>libmysqlclient</literal>. Si PDO_MYSQL est compilé avec <literal>mysqlnd</literal>, un socket par défaut peut être
indiqué via la paramètre <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
-->