diff --git a/reference/mysqlinfo/concepts.xml b/reference/mysqlinfo/concepts.xml index 18447c717..e87b1b239 100644 --- a/reference/mysqlinfo/concepts.xml +++ b/reference/mysqlinfo/concepts.xml @@ -1,15 +1,15 @@ - - + + Conceitos - + Esses conceitos são específicos dos drivers MySQL para PHP. - +
Consultas com buffer e sem buffer - + As consultas usam o modo de buffer por padrão. Isso significa que os resultados da consulta são imediatamente transferidos do servidor MySQL para o PHP e então mantidos na memória do processo PHP. Isso permite operações adicionais, como contar o @@ -20,33 +20,33 @@ conjunto de resultados sejam desativadas ou o conjunto de resultados seja explicitamente liberado, o que acontecerá automaticamente durante o término da solicitação, o mais tardar. A terminologia "armazenar resultado" também é usada para o modo buffer, pois todo o conjunto de resultados é armazenado de uma só vez. - + - + Ao usar a libmysqlclient como biblioteca, o limite de memória do PHP não contará a memória usada para conjuntos de resultados, a menos que os dados sejam buscados em variáveis ​​PHP. Com o mysqlnd a memória contabilizada incluirá o conjunto completo de resultados. - + - + Consultas MySQL sem buffer executam a consulta e aguardam que os dados do servidor MySQL sejam buscados. Isso usa menos memória do lado do PHP, mas pode aumentar a carga no servidor. A menos que o conjunto completo de resultados tenha sido obtido do servidor, nenhuma consulta adicional poderá ser enviada pela mesma conexão. Consultas sem buffer também podem ser chamadas de "resultado de uso". Depois que todas as linhas do conjunto de resultados forem buscadas, o conjunto de resultados desaparecerá e não poderá ser iterado novamente. - + - + Seguindo essas características, consultas sem buffer devem ser utilizadas apenas quando se espera um grande conjunto de resultados que será processado sequencialmente. As consultas sem buffer contêm uma série de armadilhas que tornam mais difícil seu uso, por exemplo, o número de linhas no conjunto de resultados é desconhecido até que a última linha seja obtida. Consultas em buffer são a maneira mais fácil e flexível de processar conjuntos de resultados. - + - + Como as consultas em buffer são o padrão, os exemplos abaixo demonstrarão como executar consultas sem buffer com cada API. - + Exemplo de consulta sem buffer: mysqli @@ -97,23 +97,23 @@ foreach ($unbufferedResult as $row) {
Conjuntos de caracteres - + Idealmente, um conjunto de caracteres adequado será definido no nível do servidor, e isso é descrito na seção Configuração do conjunto de caracteres do manual do servidor MySQL. Alternativamente, cada API MySQL oferece um método para definir o conjunto de caracteres em tempo de execução. - + O conjunto de caracteres e escape de caracteres - + O conjunto de caracteres deve ser entendido e definido, pois afeta todas as ações e inclui implicações de segurança. Por exemplo, o mecanismo de escape (por exemplo, mysqli_real_escape_string para mysqli e PDO::quote para PDO_MySQL) irá aderir a esta configuração. É importante perceber que essas funções não usarão o conjunto de caracteres definido com uma consulta, portanto, por exemplo, o seguinte não terá efeito sobre elas: - + @@ -140,18 +140,18 @@ $mysqli->set_charset('UTF-8'); - + Abaixo estão exemplos que demonstram como alterar adequadamente o conjunto de caracteres em tempo de execução usando cada API. - + Possível confusão UTF-8 - + Como os nomes dos conjuntos de caracteres no MySQL não contêm hífens, a string "utf8" é válida no MySQL para definir o conjunto de caracteres como UTF-8 (codificação Unicode UTF-8 de até 3 bytes). A string "UTF-8" não é válida, pois o uso de "UTF-8" não alterará o conjunto de caracteres e gerará um erro. - + diff --git a/reference/mysqlinfo/set.xml b/reference/mysqlinfo/set.xml index a74b289d8..957789dd1 100644 --- a/reference/mysqlinfo/set.xml +++ b/reference/mysqlinfo/set.xml @@ -1,19 +1,19 @@ - + Drivers e Plugins MySQL MySQL - + PHP oferece vários drivers e plugins MySQL para acessar e lidar com o MySQL. - - + + As diferenças e a funcionalidade das extensões MySQL estão descritas na visão geral desta seção. - - + + As extensões listadas suportam o protocolo MySQL. Exemplos de servidores de banco de dados compatíveis são MariaDB Server, @@ -21,7 +21,7 @@ Percona Server for MySQL e TiDB. - + @@ -30,13 +30,13 @@ Introdução - + Existem muitas APIs de PHP para acessar bancos de dados MySQL. Os usuários podem escolher entre as extesões mysqli ou PDO_MySQL. - - + + Este guia explica a terminologia usada para descrever cada API, informação sobre a @@ -44,56 +44,56 @@ ser usada, e também informação para ajudar a escolher qual biblioteca MySQL a ser usada com a API. - + Visão geral de terminologia - + Esta seção fornece uma introdução às opções disponíveis ao desenvolver aplicações PHP que precisem interagir com um banco de dados MySQL. - + - + O que é uma API? - + - + Uma Interface de Programação para Aplicações, ou API, define as classes, métodos, funções e variáveis que a aplicação precisará chamar para que consiga efetuar a tarefa desejada. No caso de aplicações PHP que precisem comunicar com banco de dados, as APIs necessárias são normalmente expostas através de extensões do PHP. - + - + APIs podem ser procedurais ou orientadas a objeto. Com uma API procedural, pode-se chamar funções para realizar tarefas, e com uma API orientada a objeto, pode-se instanciar classes e então chamar métodos nos objetos resultantes. Entre as duas opções, a última é a interface recomendada, já que é mais moderna e leva a um código mais organizado. - + - + Ao escrever aplicações PHP que precisam se conectar ao servidor MySQL, existem várias opções de API disponíveis. Este documento discute o que está disponível e como selecionar a melhor solução para cada aplicação. - + - + O que é um conector? - + - + Na documentação MySQL, o termo conector se refere a uma parte do software que permite à aplicação se conectar ao servidor de banco de dados MySQL. O MySQL fornece conectores para uma variedade de linguagens, incluindo o PHP. - + - + Se uma aplicação PHP precisa se comunicar com um servidor de banco de dados será necessário escrever código PHP para realizar tais atividades como conexão ao banco de dados, consultas ao banco e outras @@ -103,75 +103,75 @@ possivelmente usando outras bibliotecas intermediárias quando necessário. Este software é conhecimento genericamente como conector, já que ele permite à aplicação se conectar ao servidor de banco de dados. - + - + O que é um Driver? - + - + Um driver é uma parte do software projetada para se comunicar com um tipo específico de servidor de banco de dados. O driver também pode chamar uma biblioteca, tal como a Bliblioteca Cliente MySQL ou o Driver Nativo MySQL. Estas bibliotecas implementam o protocolo de baixo nível usado para comunicação com o servidor de dados MySQL. - + - + Para exemplificar, a camada de abstração de banco da dados PDO - Objetos de Dados PHP pode usar um dos vários drivers específicos para banco de dados. Um dos drivers disponíveis é o driver PDO MYSQL, que permite fazer interface com o servidor MySQL. - + - + Algumas vezes os termos conector e driver são usados de maneira intercambiável, e isto pode ser confuso. Na documentação relacionada com o MySQL o termo driver é reservado para o software que fornece a parte específica de banco de dados de um pacote de conector. - + - + O que é uma Extensão? - + - + Na documentação PHP, encontramos um outro termo - extensão. O código PHP consiste de um núcleo, com extensões opcionais à funcionalidade do núcleo. A extensão do PHP relacionada com o MySQL, mysqli, é implementada usando o framework de extensão PHP. - + - + Uma extensão tipicamente expõe uma API para o programador PHP, para permitir que suas instalações possam ser usadas programaticamente. Entretanto, algumas extensões que usam o framework de extensão PHP não expõem uma API ao programador PHP. - + - + A extensão do driver de PDO MySQL, por exemplo, não expõe uma API ao programador PHP, mas fornece uma interface à camada PDO acima dela. - + - + Os termos API e extensão não podem ser considerados com o mesmo significado, já que uma extensão não necessáriamente expões uma API ao programador. - + Escolhendo uma API - + O PHP oferece diferentes APIs para conexão ao MySQL. Pode-se ver abaixo as APIs fornecidas pelas extensões mysqli e PDO. Cada porção de código cria uma conexão a um servidor MySQL sendo executado em "example.com" usando o usuário "user" e a senha "password". E uma consulta é executada para cumprimentar o usuário. - + Comparando as APIs do MySQL @@ -213,15 +213,15 @@ echo htmlentities($row['District']); ]]> - + Comparação de características - - + + O desempenho geral de ambas as extensões é considerada aproximadamente a mesma, embora o desempenho da extensão contribui somente para uma fração do tempo total de uma requisição web do PHP. Frequentemente, o impacto é tão baixo quanto 0,1%. - + @@ -324,19 +324,19 @@ echo htmlentities($row['District']); Escolhendo uma biblioteca - + As extensões mysqli e PDO_MySQL são encapsuladores leves de uma biblioteca cliente em C. As extensões podem tanto usar a biblioteca mysqlnd quanto a biblioteca libmysqlclient. Escolher uma biblioteca é uma decisão a ser tomada na compilação. - - + + A biblioteca mysqlnd é parte da distribuição PHP. Ela oferece recursos como conexões preguiçosas e cache de consultas, que não estão disponíveis com a libmysqlclient, portanto usar a biblioteca mysqlnd interna é altamente recomendado. Consulte a documentação mysqlnd para detalhes adicionais e uma lista de recursos e funcionalidade que ela oferece. - + Comandos de configuração para usar mysqlnd ou libmysqlclient @@ -352,14 +352,14 @@ $ ./configure --with-mysqli=/path/to/mysql_config --with-pdo-mysql=/path/to/mysq ]]> - + Comparação de recursos de bibliotecas - - + + É recomendado usar a biblioteca mysqlnd ao invés da biblioteca Cliente-Servidor do MySQL (libmysqlclient). Ambas são suportadas e estão constantemente sendo melhoradas. - +