MySQLi vs PDO – qual o mais recomendado para usar?

3 de março de 2021 Off Por sudoroot

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

Recomendo para quem inicia PDO.