Ir para conteúdo

PDO vs MySQLi


antunes16

Posts Recomendados

MySQLi vs PDO

 

 

Com o mysql_* entrando no estado deprecated, a documentação PHP recomenda o uso do PDO e MySQLi.

 

Hoje nesse topico estarei mostrando vantagens e desvantagens em usar MySQLi ou PDO.

 

 

MySQLi:

 

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:

 

Vantagens:

 

Funciona com 12 drivers de bancos de dados diferentes (4D, MS SQL Server, Firebird/Interbase, MySQL, Oracle, ODBC/DB2, PostgreSQL, SQLite, 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. Mais detalhes aqui)

 

Minha Opinião!

 

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. Ou a não ser que o seu projeto dependa de velocidade.

Link para o comentário
Compartilhar em outros sites

Como assim MySQLi não tem statement?

http://php.net/manual/pt_BR/mysqli.quickstart.prepared-statements.php

$stmt = $mysqli->prepare('SELECT * FROM usuarios WHERE usuario=?');
$stmt->bind_param("s", $user);
$stmt->execute();
//Código removido do magicmoment.com.br

Eu uso MySQLi e gosto bastante, recomendo também.

Link para o comentário
Compartilhar em outros sites

Participe da Conversa

Você pode postar agora e se cadastrar mais tarde. Se você tiver uma conta, a class='ipsType_brandedLink' href='https://gamersboard.com.br/login/' data-ipsDialog data-ipsDialog-size='medium' data-ipsDialog-title='Sign In Now'>acesse agora para postar com sua conta.
Observação: sua postagem exigirá aprovação do moderador antes de ficar visível.

Visitante
Responder

×   Você colou conteúdo com formatação.   Remover formatação

  Apenas 75 emoticons são permitidos.

×   Seu link foi incorporado automaticamente.   Exibir como um link em vez disso

×   Seu conteúdo anterior foi restaurado.   Limpar Editor

×   Você não pode colar imagens diretamente. Carregar ou inserir imagens do URL.

Processando...
×
×
  • Criar Novo...