Saltar la navegación

3.- Utilización de bases de datos MySQL en PHP.

Caso práctico

Ilustración de Juan, uno de los desarrolladores web de la empresa.Entre María, Juan y Carlos, han creado una pequeña base de datos con cuatro tablas y unas decenas de registros que usarán en las pruebas de la nueva aplicación web.

Juan, que ha tenido cierta experiencia programando aplicaciones en PHP, se da cuenta que el lenguaje ha evolucionado mucho en los últimos tiempos. Y uno de los aspectos que más ha evolucionado es precisamente el que concierne al acceso a bases de datos MySQL.

En las aplicaciones que había realizado hace ya algunos años, siempre había utilizado la misma extensión. Y ahora, por lo que ha estado viendo, existen otras maneras más eficientes o más genéricas de llevar a cabo esa tarea.

Para estar seguro, busca consejo en algunos programadores amigos y llega a una conclusión: tendrá que escoger entre una extensión nativa, MySQLi, y PDO. Revisa la documentación sobre ambas y realiza un pequeño estudio comparativo. Además, diseña unas pruebas con la ayuda de María y Carlos y poder tomar una decisión. Siempre es mejor asegurarse antes de empezar, aunque eso implique alargar algo más los plazos.

Ilustración de una base de datos comunicándose con php
Imagen realizada con DIA (Elaboración propia)


Como ya viste, existen dos formas de comunicarse con una base de datos desde PHP: utilizar una extensión nativa programada para un SGBD concreto, o utilizar una extensión que soporte varios tipos de bases de datos. Tradicionalmente las conexiones se establecían utilizando la extensión nativa mysql. Esta extensión se mantiene en la actualidad para dar soporte a las aplicaciones ya existentes que la utilizan, pero no se recomienda utilizarla para desarrollar nuevos programas. Lo más habitual es elegir entre mysqli (extensión nativa) y PDO.

Con cualquiera de ambas extensiones, podrás realizar acciones sobre las bases de datos como:

  • Establecer conexiones.
  • Ejecutar sentencias SQL.
  • Obtener los registros afectados o devueltos por una sentencia SQL.
  • Emplear transacciones.
  • Ejecutar procedimientos almacenados.
  • Gestionar los errores que se produzcan durante la conexión o en el establecimiento de la misma.

PDO y mysqli (y también la antigua extensión mysql) utilizan un driver de bajo nivel para comunicarse con el servidor MySQL. Hasta hace poco el único driver disponible para realizar esta función era libmysql, que no estaba optimizado para ser utilizado desde PHP. A partir de la versión 5.3,  viene preparado para utilizar también un nuevo driver mejorado para realizar esta función, el driver nativo de MySQL, mysqlnd.