Vaya al Contenido

PHP Conexión a MySQL - SuperHispano

Saltar menú
SuperHispano
+34 012 345 678
info@example.com
España 03:19:18 sábado 07/02/26
Saltar menú
Saltar menú
Saltar menú
Taller > PHP > Base de Datos MySQL

Conexión de PHP a MySQL


PHP, a partir de su versión 5, ofrece dos formas principales para conectarse y manipular bases de datos MySQL: MySQLi y PDO (PHP Data Objects).
Ambas extensiones proporcionan una interfaz potente para interactuar con bases de datos, pero tienen diferencias importantes que debes conocer.
La elección entre una u otra depende de tus necesidades específicas, como la compatibilidad con otras bases de datos o la facilidad de migración en proyectos futuros.
A continuación, exploramos las características de cada una y cómo puedes utilizarlas para gestionar tus bases de datos de manera eficiente.

¿Qué es MySQLi y qué es PDO?


MySQLi


MySQLi, donde la “i” significa “mejorado” (improved), es una extensión de PHP diseñada específicamente para interactuar con bases de datos MySQL.
MySQLi permite trabajar tanto de manera orientada a objetos como mediante una API procedural. Es ideal si planeas trabajar exclusivamente con bases de datos MySQL.

PDO


PDO es una extensión que permite conectarse a varios sistemas de bases de datos, incluyendo MySQL. A diferencia de MySQLi, PDO ofrece una interfaz completamente orientada a objetos y es compatible con más de 12 sistemas de bases de datos, lo que lo hace más flexible para proyectos que podrían cambiar de base de datos en el futuro.

Diferencias entre MySQLi y PDO


Compatibilidad de bases de datos: MySQLi solo funciona con bases de datos MySQL, mientras que PDO soporta 12 tipos diferentes de bases de datos (PostgreSQL, SQLite, Oracle, entre otros).
Cambio de base de datos: Si tu aplicación necesita cambiar de sistema de base de datos, PDO facilita este proceso, ya que solo tendrás que modificar la cadena de conexión y ajustar algunas consultas SQL. Con MySQLi, necesitarías reescribir todo el código relacionado con la base de datos, incluidas las consultas.
API procedural vs. orientada a objetos: MySQLi permite trabajar tanto con una API procedural como con orientación a objetos, mientras que PDO es puramente orientado a objetos.
Consultas preparadas: Tanto MySQLi como PDO ofrecen soporte para consultas preparadas, una funcionalidad esencial para prevenir ataques de inyección SQL, separando los datos de la lógica de la consulta.

Conectar PHP a MySQL


Requisitos de instalación


MySQLi: En la mayoría de los servidores Linux y Windows, MySQLi viene instalado por defecto cuando se instala PHP. No suele requerir configuración adicional. PDO: PDO también está disponible en la mayoría de las instalaciones de PHP, pero en algunos casos podría requerir habilitar la extensión en el archivo php.ini. Verifica la instalación de PDO consultando el manual oficial de PHP.

Ejemplo de Conexión a MySQL usando MySQLi


Modo Orientado a Objetos


Este método usa la orientación a objetos de PHP para conectar a una base de datos MySQL.

<?php
// Definimos los datos de conexión
$servidor = "localhost"; // Normalmente 'localhost' si trabajas en un servidor local
$usuario = "usuario"; // Tu nombre de usuario de MySQL
$contraseña = "contraseña"; // La contraseña de tu usuario de MySQL
$base_datos = "mi_base_datos"; // El nombre de la base de datos a la que deseas conectarte

// Crear conexión usando el método orientado a objetos de MySQLi
$conn = new mysqli($servidor, $usuario, $contraseña, $base_datos);

// Verificar si la conexión fue exitosa
if ($conn->connect_error) {
// Si hubo un error, mostramos un mensaje y detenemos el script
die("Error en la conexión: " . $conn->connect_error);
}

// Si llegamos aquí, la conexión fue exitosa
echo "Conectado exitosamente a la base de datos '$base_datos'";
?>


En este ejemplo:


$conn = new mysqli(...): Creamos una nueva instancia de la clase mysqli, que representa la conexión.
connect_error: Si hay algún problema durante la conexión, connect_error contiene el mensaje de error.

Modo Procedural con MySQLi


La conexión también se puede hacer usando un enfoque procedural.

<?php
$servidor = "localhost";
$usuario = "usuario";
$contraseña = "contraseña";
$base_datos = "mi_base_datos";

// Crear conexión
$conn = mysqli_connect($servidor, $usuario, $contraseña, $base_datos);

// Verificar conexión
if (!$conn) {
die("Error en la conexión: " . mysqli_connect_error());
}
echo "Conectado exitosamente";
?>


Aquí:
mysqli_connect(): Usamos esta función para crear la conexión.
mysqli_connect_error(): Verifica si hubo errores en la conexión.

<2>Ejemplo de Conexión a MySQL usando PDO
PDO es una opción más flexible y te permite trabajar con múltiples bases de datos. A continuación un ejemplo utilizando try-catch para manejar errores.
<?php
$servidor = "localhost";
$usuario = "usuario";
$contraseña = "contraseña";
$base_datos = "mi_base_datos";

try {
// Intentamos conectarnos a la base de datos
$conn = new PDO("mysql:host=$servidor;dbname=$base_datos", $usuario, $contraseña);
$conn->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION);
echo "Conectado exitosamente";
} catch(PDOException $e) {
// Si ocurre un error, capturamos la excepción y mostramos el mensaje
echo "Error en la conexión: " . $e->getMessage();
}
?>


En este ejemplo:
new PDO(...): Establecemos la conexión a la base de datos.
setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION): Configura PDO para lanzar excepciones en caso de error.
catch(PDOException $e): Captura la excepción si la conexión falla.

Este enfoque ofrece un manejo de errores más detallado y controlado mediante bloques try-catch, lo que permite a los desarrolladores reaccionar ante problemas como errores de conexión o fallos de autenticación de manera más limpia.

Cerrar la Conexión


Aunque PHP cierra automáticamente la conexión a la base de datos cuando el script termina, es recomendable cerrarla manualmente en aplicaciones más grandes o de larga duración.
Al liberar la conexión de manera explícita, podemos reducir la carga en el servidor de la base de datos, evitando posibles problemas de rendimiento.
Aquí te mostramos cómo hacerlo en cada método:

Cerrar la conexión MySQLi Orientado a Objetos


$conn->close(); // Cierra la conexión manualmente

Cerrar la conexión MySQLi Procedural


mysqli_close($conn); // Libera los recursos asociados a la conexión

Cerrar la conexión PDO


$conn = null; // Al asignar la conexión a null, PHP cierra automáticamente la conexión

Conclusión


Tanto MySQLi como PDO ofrecen potentes herramientas para gestionar bases de datos desde PHP, cada una con sus propios beneficios. Si buscas flexibilidad y compatibilidad con múltiples sistemas de bases de datos, PDO es la mejor opción. Si solo necesitas trabajar con MySQL y prefieres una API procedural, MySQLi es una alternativa adecuada.
Recuerda siempre usar consultas preparadas para proteger tu aplicación de inyecciones SQL, y asegúrate de cerrar las conexiones adecuadamente para mejorar el rendimiento y evitar problemas en aplicaciones más grandes.
+34 012 345 678
+34 012 345 678 (fax)
example@superhispano.com
Creado con WebSite X5
Regreso al contenido
Icono de la aplicación
SuperHispano Instale esta aplicación en su pantalla de inicio para una mejor experiencia
Toque Botón de instalación en iOS y luego "Agregar a su pantalla"