new extension ejemplos diferencias consulta conexion clase php mysql pdo mysqli

php - extension - ¿Cuál es la diferencia entre MySQL, MySQLi y PDO?



pdo php extension (6)

Esas son diferentes API para acceder a un backend de MySQL

  • El mysql es la API histórica
  • El mysqli es una nueva versión de la API histórica. Debería funcionar mejor y tener un mejor conjunto de funciones. Además, la API está orientada a objetos.
  • PDO_MySQL , es el MySQL para PDO. PDO se ha introducido en PHP, y el proyecto tiene como objetivo crear una API común para el acceso a todas las bases de datos, por lo que en teoría debería poder migrar entre RDMS sin cambiar ningún código (si no utiliza funciones RDBM específicas en sus consultas) ), también orientado a objetos.

Por lo tanto, depende del tipo de código que desee producir. Si prefiere capas orientadas a objetos o funciones simples ...

Mi consejo sería

  1. DOP
  2. MySQLi
  3. mysql

También mi sensación, la API mysql probablemente sería eliminada en futuros lanzamientos de PHP .

¿Cuál es la diferencia entre MySQL, MySQLi y PDO ?

¿Cuál es el más adecuado para usar con PHP-MySQL?


Específicamente, la extensión MySQLi proporciona los siguientes beneficios extremadamente útiles sobre la antigua extensión de MySQL.

Interfaz de OOP (además de de procedimiento) Prepared Statement Support Transaction + Stored Procedure Support Nicer Sintaxis Mejoras de velocidad Depuración mejorada

Extensión PDO

La extensión PHP Data Objects es una capa de abstracción de base de datos. Específicamente, esta no es una interfaz MySQL, ya que proporciona controladores para muchos motores de base de datos (por supuesto, incluye MYSQL).

PDO tiene como objetivo proporcionar una API consistente que significa que cuando se cambia un motor de base de datos, el código cambia para reflejar que esto debería ser mínimo. Al usar PDO, su código normalmente "solo funcionará" en muchos motores de base de datos, simplemente cambiando el controlador que está usando.

Además de ser compatible con bases de datos cruzadas, PDO también admite declaraciones preparadas, procedimientos almacenados y más, mientras se usa el controlador MySQL.


Hay (más de) tres formas populares de usar MySQL desde PHP.

  1. ( DEPRECATED ) Las funciones de mysql son de procedimiento y usan escape manual.
  2. MySQLi es un reemplazo de las funciones de mysql, con versiones orientadas a objetos y procedimientos. Tiene soporte para declaraciones preparadas.
  3. PDO (PHP Data Objects) es una capa de abstracción de base de datos general con soporte para MySQL entre muchas otras bases de datos. Proporciona declaraciones preparadas y una flexibilidad significativa en la forma en que se devuelven los datos.

Yo recomendaría usar PDO con declaraciones preparadas. Es una API bien diseñada y le permitirá moverse más fácilmente a otra base de datos (incluyendo cualquiera que admita ODBC ) si es necesario.


Hay una table compara las 3 características de API. Use Mysqli siempre que sea posible, ya que es el último lanzamiento después de PDO y se mantendrá y se mantendrá mejor en el futuro.


Simplemente podemos decir Extensión mejorada de MySQL, que ofrece varios beneficios. La extensión mysqli le permite acceder a la funcionalidad proporcionada por MySQL 4.1 y superior.

La extensión de objetos de datos PHP (PDO) define una interfaz ligera y consistente para acceder a bases de datos en PHP. Cada controlador de base de datos que implementa la interfaz PDO puede exponer características específicas de la base de datos como funciones de extensión regulares. Tenga en cuenta que no puede realizar ninguna función de base de datos utilizando la extensión PDO por sí sola; debe usar un controlador PDO específico de la base de datos para acceder a un servidor de base de datos.


mysqli es la versión mejorada de mysql.

La extensión PDO define una interfaz liviana y consistente para acceder a bases de datos en PHP. Cada controlador de base de datos que implementa la interfaz PDO puede exponer características específicas de la base de datos como funciones de extensión regulares.