MySQLi vs PDO – qual o mais recomendado para usar?

MySQLi vs PDO – qual o mais recomendado para usar?

20 de dezembro de 2017 0 Por Ramos de Souza Janones

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

Evento gratuito de tecnologia: inscreva-se na 3ª edição do Dev Summit:

  1. Vem ai a 3ª edição do maior evento hands-on de desenvolvimento de software do Brasil. Vamos apresentar tecnologias, ferramentas e práticas em mais de 20 horas em sessões ao vivo com profissionais de referência em Full Stack, Flutter, Angular, React e muito mais.
  2.  



    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.

    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).

    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.

     

    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.

    Deve gostar:

    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.

    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.

    Mais tutoriais

     

    Subscribe to our mailing list

    * indicates required


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

    Email Format


    votes
    Article Rating

    LEIA TAMBÉM:  O que é normalização de banco de dados?

    E-Zine Ramos da Informática

    * indicates required

    View previous campaigns.