PHP : Formas de Conectarse a MySQL
Conectarse a una base de datos MySQL desde PHP es una de las tareas más comunes cuando desarrollas aplicaciones web que requieren almacenamiento de datos. En este post, exploraremos tres formas principales de realizar esta conexión: usando mysqli (con orientación a objetos y estilo procedural) y PDO. Cada uno tiene sus ventajas y usos específicos, y daremos contexto para entenderlo e implementarlos correctamente.
Antes de comenzar vamos a realizar unos pasos previo a los ejemplos de conexión. Primero, crearemos una base de datos llamada testdb
. Abrimos el cliente mysql desde la línea de comandos:
1
mysql -u root -p
Y ejecutamos el siguiente comando SQL para crearla:
1
CREATE DATABASE testdb;
Una vez creada la base de datos, la seleccionamos con el siguiente comando:
1
USE testdb;
Ahora creamos una tabla de ejemplo llamada usuarios
con dos columnas: id
, nombre
. La columna id
será de tipo entero INTEGER
y será la clave primaria, y la columna nombre
será de tipo VARCHAR
para almacenar cadenas de textos.
1
2
3
4
CREATE TABLE usuarios (
id INT AUTO_INCREMENT PRIMARY KEY,
nombre VARCHAR(100) NOT NULL
);
1. Conectar a MySQL con mysqli
El mysqli
es una extensión de PHP que proporiciona una interfaz mejorada para interactuar con MySQL. Soporta tanto la programación orientada a objetos como la programación procedural.
1.1 Conexión con MySQL usando mysqli (Estilo Procedural)
Este es el estilo más sencillo de usar para quienes vienen de un entorno más procedural:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
<?php
$host = 'localhost';
$usuario = 'root';
$contraseña = '';
$base_de_datos = 'testdb';
// Crear conexión
$conexion = mysqli_connect($host, $usuario, $contraseña, $base_de_datos);
// Verificar conexión
if (!$conexion) {
die("Conexión fallida: " . mysqli_connect_error());
}
echo "Conexión exitosa!";
?>
Con esto, PHP se conecta al servidor de base de datos MySQL, tienes que seleccionar una base de datos a la que el usuario tenga acceso. En el caso anterior
testdb
debe existir y el usuario debe tener privilegios sobre ella.
1.2 Conexión con MySQL usando mysqli (Estilo Orientado a Objetos)
El estilo orientado a objetos es más estructurado y recomendado para proyectos más grandes:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
<?php
$host = 'localhost';
$usuario = 'root';
$contraseña = '';
$base_de_datos = 'testdb';
try {
// Crear una nueva conexión
$conexion = new mysqli($host, $usuario, $contraseña, $base_de_datos);
// Verificar si hay errores
if ($conexion->connect_error) {
throw new Exception("Conexión fallida: " . $conexion->connect_error);
}
echo "Conexión exitosa!";
} catch (Exception $e) {
echo $e->getMessage();
}
?>
1.3 Ejecutar Consultas con mysqli
Una vez establecida la conexión, podemos ejecutar consultas SQL. Ejemplo consultas SELECT
, en un archivo de ejemplo llamado query.php
, podemos importar la conexión y usarla para ejecutar la consulta.
Para mantener la coherencia y evitar errores, debemos usar uno de los dos estilos (procedural o orientado a objetos) en los ejemplos.
Ejemplo (Estilo Orientado a Objeto):
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
<?php
// Incluir la conexión
require_once 'conexion.php';
// Ahora podemos disponer de la variable $conexion para ejecutar consultas
$sql = "SELECT nombre FROM usuarios";
$resultado = $conexion->query($sql);
// Verificar si hay resultados
if ($resultado->num_rows > 0) {
while($fila = $resultado->fetch_assoc()) {
echo "Usuario: " . $fila['nombre'] . "<br>";
}
} else {
echo "0 Resultados";
}
$conexion->close();
?>
Ahora que ya tenemos una base de datos y un usuario, vamos a escribir el siguiente código PHP para conectarnos a MySQL:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
<?php
// Definimos los parámetros de conexión
$servidor = "localhost";
$usuario = "usuario";
$contraseña = "mi_contraseña";
$base_datos = "mi_base_datos";
// Intentamos establecer si hay un error de conexión
$conexion = new mysqli($servidor, $usuario, $contraseña, $base_datos);
// Verificamos si hay un error de conexión
if ($conexion->connect_error) {
die("Conexión fallida: " . $conexion->connect_error);
}
echo "¡Conexión exitosa!";
?>
Desglosar el código:
new mysqli(...)
: Este constructor crea una nueva intancia de la clasemysqli
y establece la conexión con la base de datos MySQL utilizando los parámetros proporcionados.$conexion->connect_error
: Verifica si hubo un error al intentar conectarse. Si es así, el script termina con el mensaje “Conexión fallida” y muestra el error.
Realizar Operaciones En la Base de Datos
Una vez establecemos una conexión exitosa, podemos realizar operaciones con consultas DML como SELECT
, INSERT
, UPDATE
y DELETE
.
A continuación veremos como realizar una consulta para obtener datos de la tabla de usuarios:
1
2
3
4
<?php
// Realizar la consulta
$sql = "SELECT id, nombre FROM usuarios";
?>
Mi lema es