1
0
mirror of https://github.com/php/doc-es.git synced 2026-03-24 07:22:16 +01:00
Files
archived-doc-es/reference/pdo_mysql/reference.xml
2025-07-03 21:51:59 +02:00

194 lines
6.4 KiB
XML

<?xml version="1.0" encoding="utf-8"?>
<!-- $Revision$ -->
<!-- EN-Revision: 3c1bec9d700807df36994cf368ba291214cd424d Maintainer: PhilDaiguille Status: ready -->
<!-- Reviewed: no -->
<reference xml:id="ref.pdo-mysql" xmlns="http://docbook.org/ns/docbook">
<?phpdoc extension-membership="bundledexternal" ?>
<title>Funciones del controlador PDO MySQL (PDO_MYSQL)</title>
<titleabbrev>Controlador PDO MySQL</titleabbrev>
<partintro>
<section xml:id="ref.pdo-mysql.intro">
&reftitle.intro;
<para>
PDO_MYSQL es un controlador que implementa la <link
linkend="intro.pdo">interfaz de PHP Data Objects (PDO)</link> para
permitir el acceso de PHP a las bases de datos MySQL.
</para>
<para>
PDO_MYSQL utiliza consultas preparadas emuladas por omisión.
</para>
<para>
<emphasis role="bold">MySQL 8</emphasis>
</para>
<para>
Si PHP se utiliza en una versión 7.1 anterior a la versión 7.1.16, o PHP 7.2 anterior a 7.2.4,
el complemento de contraseña debe establecerse en
<emphasis>mysql_native_password</emphasis> para MySQL 8 Server, ya que de lo contrario pueden aparecer
errores similares a <emphasis>The server requested authentication method
unknown to the client [caching_sha2_password]</emphasis>,
incluso si <emphasis>caching_sha2_password</emphasis> no se utiliza.
</para>
<para>
Esto se debe a que MySQL 8 utiliza por omisión caching_sha2_password,
un complemento que no es reconocido por las versiones antiguas de PHP (mysqlnd).
En su lugar, debe modificarse el parámetro
<literal>default_authentication_plugin=mysql_native_password</literal> en
<filename>my.cnf</filename>. El complemento <emphasis>caching_sha2_password</emphasis>
es completamente soportado a partir de PHP 7.4.4. Para versiones anteriores,
la extensión <link linkend="book.mysql-xdevapi">mysql_xdevapi</link> lo soporta.
</para>
<warning>
<para>
Tenga en cuenta: ciertos tipos de tablas MySQL (motor de registro)
no soportan transacciones. Cuando se escribe código de base de datos
transaccional utilizando un tipo de tabla que no soporta transacciones,
MySQL afirmará que una transacción fue iniciada correctamente. Además,
cualquier consulta DLL publicada enviará implícitamente todas las transacciones pendientes.
</para>
</warning>
<note>
<para>
El controlador MySQL no soporta adecuadamente <constant>PDO::PARAM_INPUT_OUTPUT</constant>
a través de <methodname>PDOStatement::bindParam</methodname>; aunque tales
parámetros pueden ser utilizados, no serán actualizados
(es decir, la salida actual es ignorada).
</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>Conexión a las bases de datos MySQL</refpurpose>
</refnamediv>
<refsect1 role="description">
&reftitle.description;
<para>
El Data Source Name (DSN) de PDO_MYSQL se compone de los siguientes elementos:
<variablelist>
<varlistentry>
<term>Prefijo DSN</term>
<listitem>
<para>
El prefijo DSN es <userinput>mysql:</userinput>.
</para>
</listitem>
</varlistentry>
<varlistentry>
<term><literal>host</literal></term>
<listitem>
<para>
El host donde se encuentra el servidor de base de datos.
</para>
</listitem>
</varlistentry>
<varlistentry>
<term><literal>port</literal></term>
<listitem>
<para>
El número de puerto donde el servidor de base de datos está escuchando.
</para>
</listitem>
</varlistentry>
<varlistentry>
<term><literal>dbname</literal></term>
<listitem>
<para>
El nombre de la base de datos.
</para>
</listitem>
</varlistentry>
<varlistentry>
<term><literal>unix_socket</literal></term>
<listitem>
<para>
El socket Unix de MySQL (no debe utilizarse con
<literal>host</literal> o <literal>port</literal>).
</para>
</listitem>
</varlistentry>
<varlistentry>
<term><literal>charset</literal></term>
<listitem>
<para>
El juego de caracteres. Consulte la documentación sobre los conceptos
<link linkend="mysqlinfo.concepts.charset">de los juegos de caracteres</link>
para obtener más información.
</para>
</listitem>
</varlistentry>
</variablelist>
</para>
</refsect1>
<refsect1 role="examples">
&reftitle.examples;
<para>
<example>
<title>Ejemplos con el DSN de PDO_MYSQL</title>
<para>
El siguiente ejemplo muestra el DSN PDO_MYSQL para conectarse a las bases
de datos MySQL:
<programlisting>
<![CDATA[
mysql:host=localhost;dbname=testdb
]]>
</programlisting>
Ejemplos más completos:
<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>Solo Unix:</title>
<para>
Cuando el nombre de host es <literal>"localhost"</literal>, la conexión se realiza a través de un socket
Unix. Si PDO_MYSQL está compilado con <literal>libmysqlclient</literal>, entonces el archivo de socket es el especificado durante
la compilación de <literal>libmysqlclient</literal>. Si PDO_MYSQL está compilado con <literal>mysqlnd</literal>, un socket por omisión puede ser
indicado a través del parámetro <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
-->