PDO ou MYSQLi

Pessoal,

O que vocês estão usando?

Vou começar na V9 e queria saber qual dos dois drivers está sendo mais eficiente. Até aqui usei o PDO mas estou imensamente inclinado a utilizar o Mysqli.

Jovito

Meio que responde então cito:
http://www.scriptcase.com.br/forum/index.php/topic,13026.msg67768.html#msg67768
Na prática o Mysqli usando o Mysqlnd.
E mais rápido que PDO.

Eu continuo usando PDO, porque uso ele com outros bancos.

[color=red]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.)

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 seja, se fores usar somente MySQL, o MySQLi se torna melhor… mas se fores usar outros bancos aí o PDO se torna a solução. Vai depender do que você vai fazer.

Eu já tive problemas com MySQLi que só se resolveram com PDO, então padronizei como uso o PDO, a escolha foi meio forçada, mas sempre prezo a performance, sendo assim vou refazer meus testes na V9 (como esta com PHP7) penso em retomar a conexão ao Mysql Transaction.

Haroldo,
Na V9
Mysql Transaction e outros = mysql -> https://secure.php.net/manual/pt_BR/book.mysql.php
Para Mysqli agora o driver aparece na lista corretamente MySQLi.