MySQLi vs PDO – qual o mais recomendado para usar?

MySQLi vs PDO – qual o mais recomendado para usar?

20 de dezembro de 2017 2 Por Ramos de Souza Janones
Como vender Software - Seja desktop, web ou MobilePowered by Rock Convert
Powered by Rock Convert

Nesta dica apresentamos as diferenças e vantagens na utilização de MySQLi e PDO em conexões com banco de dados MySQL com o PHP.

MySQLi no PHP:

Vantagens:

  • API Orientada a objetos e procedural;
  • Performace elevada;
  • Sintaxe relativamente mais simples (e similar a antiga API mysql_*);

Desvantagens:

  • Só funciona com bancos MySQL;
  • Não possui parâmetros nomeados;
  • Não possui prepared statements do lado cliente;

PDO no PHP:

Vantagens:

  • Funciona com 12 drivers de bancos de dados diferentes (4D, MS SQL Server, Firebird/Interbase, MySQLOracle, ODBC/DB2, PostgreSQLSQLite, Informix, IBM, CUBRID);
  • API Orientada a objetos;
  • Possui parâmetros nomeados;
  • Possui prepared statements do lado cliente (ver desvantagens abaixo)

Desvantagens:

  • Não tão veloz quanto MySQLi;
  • Por padrão, ele simula prepared statements (você pode ativar a versão nativa ao configurar a conexão dele com o banco, mas caso a versão nativa não funcione por algum motivo, ele volta a simular os prepared statements sem disparar erros ou avisos

Entre as duas opções eu dou preferência ao PDO, mesmo sendo um pouco mais lento (entre 2%-7%). Ao meu ver, o fato do PDO se comunicar com mais drivers de BDs e de possuir prepared statements, que é de grande valia quando o assunto é segurança, na minha opinião torna esta tecnologia mais interessante.

» Banco de Dados » MySQL e MariaDB

Segue outros links que fazem a comparação:

PDO vs Mysqli which should you use net

With is better Mysqli or PDO in PHP

Curso de PHP ERP com NFe.

– PHP Do Zero Ao Profissional – Análise do Curso

Conexão MySQL com PHP

O PHP e MySQL possuem total compatibilidade, e funcionam muito bem juntos. O PHP possui todas as funções para conectar ao MySQL, consultar tabelas e realizar operações de insert, entre outras.  Neste artigo, explicaremos o processo básico para se conectar ao mysql e realizar uma consulta, usando PHP.

Para se conectar e fazer consultas a um Banco de Dados MySQL, primeiramente é necessário criar um banco de dados MySQL através do painel de controle cPanel. É necessário ter em mãos o nome do banco, nome do usuário e senha. Tendo o banco criado, utilize o seguinte código PHP substituindo as primeiras linhas:

$user = “usuario_do_banco“;
$password = “senha_do_banco“;
$database = “nome_do_banco“;

Note que, antes de mais nada, você precisa criar uma tabela em seu banco de dados MySQL. Dessa forma, você pode fazer esta criação e gerenciamento usando a ferramenta phpMyAdmin. Em seguida, já poderá conectar o PHP com o MySQL.

LEIA TAMBÉM:  10 ferramentas para o desenvolvimento PHP moderno

Realizando a conexão do PHP com o MySQL

Primeiramente, temos que conectar o PHP ao MySQL. Esta conexão é essencial, para que o PHP possa operar o banco de dados e trazer todas as informações necessárias. A cada execução do PHP é realizada uma conexão com o banco.

Selecionando o banco de dados

Em seguida, você precisa informar para o MySQL qual o banco de dados que irá usar. Dentro de um servidor MySQL pode haver de um a vários bancos de dados diferentes. Normalmente se divide um banco de dados para cada finalidade. Por exemplo, um banco de dados para sua loja virtual, outro banco de dados para um cadastro de clientes, outro banco para um blog wordpress..

 

Realizando uma consulta (SELECT)

O SELECT é o comando mais usado do MySQL. Por ele, fazemos consultas e trazemos para o PHP os dados existentes em uma tabela do banco de dados. Estes dados são colocados em um array (ou seja, uma variável que é uma matriz de dados).

Powered by Rock Convert

Exibir os registros na tela

Vamos agora percorrer o array (matriz), e exibir na tela cada registro encontrato em nossa tabela.

 

Código final e completo. PHP e MySQL conectando ao banco e realizando a consulta.

Segue agora, o código completo do nosso exemplo. Juntamos cada uma das etapas em um PHP único. Caso prefira, você pode copiar e colar em seu site, e realizar as adaptações necessárias.

 

LEIA TAMBÉM:  10 novidades do PHP 7 e o que não fazer com o PHP 7

Dúvidas frequentes

Mensagem de erro: “Erro na conexão”

Esta mensagem ocorre devido a um problema na primeira etapa, que é a conexão com o banco de dados. O problema estará mais precisamente no comando mysql_connect. Para solucionar, você precisa revisar o hostname, login e senha. O hostname deve ser “localhost” em 99% dos casos (quando o banco de dados estiver no mesmo servidor de hospedagem de sites). O login e senha são definidos no momento da criação do banco de dados pelo painel de controle.

O formato do nome do banco de dados no cPanel é sempre: usuario_nomedobanco . Por exemplo, se o seu domínio for meusitemodelo.com , o usuário cPanel será meusitem. Por exemplo, caso você crie um banco de dados com o nome “clientes”, terá assim, um nome do banco “meusitem_clientes”.

A causa do problema pode também ser um erro na senha do usuário do MySQL. Você pode resetar a senha deste usuário MySQL pelo painel de controle e tentar novamente.

Mensagem de erro: “Erro na seleção do banco”

Significa que o banco de dados que você está tentando usar nao existe, ou está com seu nome digitado errado. Dessa forma, este erro ocorre mais precisamente na função mysql_select_db().

Mensagem de erro: “Erro na query: Access denied for user ”@’localhost’ (using password: NO)”

Este erro ocorre quando o comando mysql_connect() não foi executado corretamente. Significa que a conexão com o banco de dados não ocorreu da forma certa. Por isso, revise o trecho do código que realiza a conexão com o banco MySQL. Por exemplo, verifique se o usuário e senha do MySQL estão corretos.

Erro: “Erro na query:SELECT codigo,nome,endereco FROM tabela Table ‘meusitem_nomedobanco.tabela’ doesn’t exist”

Isto significa que o PHP está tentando selecionar dados de uma tabela que não existe no banco de dados. Por isso, este erro ocorre quando a conexão do PHP com o MySQL foi realizada com sucesso, e quando o banco de dados foi selecionado corretamente. Portanto, o problema está na tabela do banco de dados.

LEIA TAMBÉM:  7 coisas simples em PHP que alguns ainda complicam

Mais precisamente, o erro está nesta linha:

Para solucionar o problema, você precisa acessar o MySQL usando o phpMyAdmin e criar uma nova tabela. Verifique, também, se o nome digitado para sua tabela está correto. Por exemplo, nesta consulta, estamos solicitando os campos codigo, nome e endereco de uma tabela chamada tabela.

 

Subscribe to our mailing list

* indicates required


Além de PHP e MySQL, deseja receber outro tema?

Email Format


Powered by Rock Convert
Siga os bons!
Últimos posts por Ramos de Souza Janones (exibir todos)
vote
Article Rating
Sumário
MySQLi vs PDO - qual o mais recomendado para usar?
Nome do artigo
MySQLi vs PDO - qual o mais recomendado para usar?
Descrição
Nesta dica apresentamos as diferenças e vantagens na utilização de MySQLi e PDO em conexões com banco de dados MySQL com o PHP.
Autor
Nome
Ramos da Informática
Logo