mirror of
https://github.com/php/doc-pt_br.git
synced 2026-03-23 22:52:12 +01:00
191 lines
6.1 KiB
XML
191 lines
6.1 KiB
XML
<?xml version="1.0" encoding="utf-8"?>
|
|
<!-- EN-Revision: 3c1bec9d700807df36994cf368ba291214cd424d Maintainer: leonardolara Status: ready --><!-- CREDITS: felipe,leonardolara -->
|
|
|
|
<reference xml:id="ref.pdo-mysql" xmlns="http://docbook.org/ns/docbook">
|
|
<?phpdoc extension-membership="bundledexternal" ?>
|
|
<title>Driver PDO do MySQL (PDO_MYSQL)</title>
|
|
<titleabbrev>Driver PDO do MySQL</titleabbrev>
|
|
<partintro>
|
|
|
|
<section xml:id="ref.pdo-mysql.intro">
|
|
&reftitle.intro;
|
|
<para>
|
|
PDO_MYSQL é um driver que implementa a interface <link linkend="intro.pdo">PHP
|
|
Data Objects (PDO)</link>
|
|
para habilitar o acesso do PHP aos bancos de dados MySQL.
|
|
</para>
|
|
<para>
|
|
PDO_MYSQL utiliza as preparações emuladas por padrão.
|
|
</para>
|
|
|
|
<para>
|
|
<emphasis role="bold">MySQL 8</emphasis>
|
|
</para>
|
|
|
|
<para>
|
|
Ao executar uma versão de PHP anterior a 7.1.16, ou 7.2.4, defina
|
|
o plugin padrão de senhas do Servidor MySQL 8 para <emphasis>mysql_native_password</emphasis>
|
|
ou poderão surgir erros similares a
|
|
<emphasis>The server requested authentication method unknown to the client [caching_sha2_password]</emphasis>
|
|
mesmo quando <emphasis>caching_sha2_password</emphasis> não seja usado.
|
|
</para>
|
|
<para>
|
|
Isto acontece porque o padrão do MySQL 8 é caching_sha2_password, um plugin que não
|
|
é reconhecido pelas versões antigas do PHP (mysqlnd). Portanto, altere o plugin
|
|
configurando <literal>default_authentication_plugin=mysql_native_password</literal>
|
|
no arquivo <filename>my.cnf</filename>. O plugin <emphasis>caching_sha2_password</emphasis>
|
|
é totalmente suportado a partir do PHP 7.4.4. Para versões anteriores do PHP, a extensão
|
|
<link linkend="book.mysql-xdevapi">mysql_xdevapi</link> suporta
|
|
o plugin.
|
|
</para>
|
|
|
|
<warning>
|
|
<para>
|
|
Cuidado: Alguns tipos de tabelas do MySQL (motores de armazenamento) não suportam transações. Ao
|
|
escrever código para um banco de dados transacional onde o tipo de tabela não suporta
|
|
transações, o MySQL irá entender que a transação foi inicializada com sucesso.
|
|
Além disso, qualquer consulta DDL irá, de forma implícita,
|
|
executar o "commit" para qualquer transação que esteja pendente.
|
|
</para>
|
|
</warning>
|
|
<note>
|
|
<para>
|
|
O driver MySQL não suporta adequadamente a opção <constant>PDO::PARAM_INPUT_OUTPUT</constant>
|
|
através de <methodname>PDOStatement::bindParam</methodname>; embora tais parâmetros possam ser usados,
|
|
eles não são atualizados (isto é, a saída real é 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>Conectando a bancos de dados MySQL</refpurpose>
|
|
</refnamediv>
|
|
|
|
<refsect1 role="description">
|
|
&reftitle.description;
|
|
<para>
|
|
O Data Source Name (DSN) do PDO_MYSQL é composto dos seguintes elementos:
|
|
<variablelist>
|
|
<varlistentry>
|
|
<term>Prefixo DSN</term>
|
|
<listitem>
|
|
<para>
|
|
O prefixo DSN é <userinput>mysql:</userinput>.
|
|
</para>
|
|
</listitem>
|
|
</varlistentry>
|
|
<varlistentry>
|
|
<term><literal>host</literal></term>
|
|
<listitem>
|
|
<para>
|
|
O nome do servidor onde está o banco de dados.
|
|
</para>
|
|
</listitem>
|
|
</varlistentry>
|
|
<varlistentry>
|
|
<term><literal>port</literal></term>
|
|
<listitem>
|
|
<para>
|
|
O número da porta onde o servidor do banco de dados está escutando.
|
|
</para>
|
|
</listitem>
|
|
</varlistentry>
|
|
<varlistentry>
|
|
<term><literal>dbname</literal></term>
|
|
<listitem>
|
|
<para>
|
|
O nome do banco de dados.
|
|
</para>
|
|
</listitem>
|
|
</varlistentry>
|
|
<varlistentry>
|
|
<term><literal>unix_socket</literal></term>
|
|
<listitem>
|
|
<para>
|
|
O soquete Unix do MySQL (não deve ser usado com <literal>host</literal>
|
|
ou <literal>port</literal>).
|
|
</para>
|
|
</listitem>
|
|
</varlistentry>
|
|
<varlistentry>
|
|
<term><literal>charset</literal></term>
|
|
<listitem>
|
|
<para>
|
|
O conjunto de caracteres. Veja a documentação sobre <link linkend="mysqlinfo.concepts.charset">conjunto de caracteres</link>
|
|
para mais informação.
|
|
</para>
|
|
</listitem>
|
|
</varlistentry>
|
|
</variablelist>
|
|
</para>
|
|
</refsect1>
|
|
|
|
<refsect1 role="examples">
|
|
&reftitle.examples;
|
|
<para>
|
|
<example>
|
|
<title>Exemplos de DSN do PDO_MYSQL</title>
|
|
<para>
|
|
O exemplo a seguir demonstra um DSN do PDO_MYSQL para conexão com
|
|
banco de dados MySQL:
|
|
<programlisting>
|
|
<![CDATA[
|
|
mysql:host=localhost;dbname=testdb
|
|
]]>
|
|
</programlisting>
|
|
Exemplos mais 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>Somente em Unix:</title>
|
|
<para>
|
|
Quando o nome do servidor é definido como <literal>"localhost"</literal>, a conexão ao
|
|
servidor é feita através de um soquete de domínio. Se o PDO_MYSQL tiver sido compilado usando libmysqlclient, a
|
|
localização do soquete é a mesma localização da compilação da libmysqlclient. Se o PDO_MYSQL foi compilado
|
|
usando mysqlnd, um soquete padrão pode ser definido através da configuração <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
|
|
-->
|