Conexión y métodos de consulta a una BD MYSQL
Programación de una clase para conectarse a una base de datos en MYSQL ademas de los métodos CRUD estandar para realizar consultas, en PHP
INDICE
- 1. 🏗️ La Estructura Base: Clase ApptivaDB para la Conexión a MySQL
- 2. ➕ Método CREATE (INSERTAR): Agrega Registros a la BD
- 3. 🔍 Método READ (BUSCAR): Consulta Registros Filtrados
- 4. ✍️ Método UPDATE (ACTUALIZAR): Modifica Datos
- 5. 🗑️ Método DELETE (BORRAR): Remueve Registros
- 6. 📦 Código Completo de la Clase ApptivaDB (db.php)
- 7. 💻 Ejemplos Prácticos de Uso de la Clase ApptivaDB
- Descargar fuente código 1.96 KB
¿Estás desarrollando una aplicación web dinámica y necesitas conectar MySQL con PHP de manera sencilla? En este tutorial paso a paso, aprenderás a establecer una conexión a base de datos MySQL con PHP, implementar métodos CRUD básicos (Crear, Leer, Actualizar, Eliminar) y optimizar tu código para proyectos reales. Ideal para desarrolladores principiantes que usan PHP 7.0 o superior con MySQLi.
Toda página web o app que maneja datos dinámicos requiere dos pilares fundamentales:
- Una conexión segura a la base de datos.
- Métodos de consulta CRUD para gestionar información eficientemente.
Sigue esta guía para conectar base de datos MySQL con PHP y evita errores comunes. ¡Empecemos!
🏗️ La Estructura Base: Clase ApptivaDB para la Conexión a MySQL
🏗️ La Estructura Base: Clase ApptivaDB para la Conexión a MySQL
Para empezar, crearemos el archivo db.php que contendrá nuestra clase principal. Esta clase encapsulará los detalles de la conexión a la base de datos, lo que la hace altamente reutilizable en cualquier parte de tu proyecto.
Creación del Archivo db.php
La clave está en el método constructor (__construct), que establece la conexión de forma segura e inmediatamente configura la codificación a UTF-8.
PHP
<?php
class ConexionDB {
// Configuración de la Conexión (Modificar según tu entorno)
private $host = "localhost";
private $usuario = "root";
private $clave = "";
private $db = "test"; // <--- ¡IMPORTANTE! Cambia por tu nombre de BD
public $conexion;
/**
* Constructor: Inicializa la conexión MySQLi y establece UTF-8.
*/
public function __construct() {
// Establecer la conexión o morir con el error
$this->conexion = new mysqli($this->host, $this->usuario, $this->clave, $this->db)
or die(mysql_error());
// Establecer el conjunto de caracteres a UTF-8
$this->conexion->set_charset("utf8");
}
}
?>
Instancia la Clase en tu Proyecto index.php
Para empezar a usar los métodos CRUD, solo necesitas incluir el archivo e instanciar la clase:
PHP
<?php
include "db.php";
$user = new ConexionDB();
?>
➕ Método CREATE (INSERTAR): Agrega Registros a la BD
➕ Método CREATE (INSERTAR): Agrega Registros a la BD
El método insertar() permite añadir nuevos registros de forma genérica a cualquier tabla, siempre y cuando el primer campo sea un ID autoincremental (por eso se usa null).
Código del Método insertar()
PHP
// INSERTAR
/**
* Inserta datos en una tabla.
* @param string $tabla Nombre de la tabla.
* @param string $datos Cadena de valores (ej: "'valor1', 'valor2'").
* @return bool
*/
public function insertar($tabla, $datos) {
$resultado = $this->conexion->query("INSERT INTO $tabla VALUES (null, $datos)")
or die($this->conexion->error);
if ($resultado) return true;
return false;
}
Ejemplo Práctico de Uso
PHP
$u = $user->insertar("usuarios", "'PAPA', 'JUAN PABLO', 'foto.jpg'");
if ($u) {
echo "✅ Registro insertado correctamente.";
} else {
echo "❌ Error al insertar el registro.";
}
🔍 Método READ (BUSCAR): Consulta Registros Filtrados
🔍 Método READ (BUSCAR): Consulta Registros Filtrados
El método buscar() es esencial para la lectura de datos. Permite realizar consultas flexibles y retorna todos los resultados en un array asociativo fácil de manejar en PHP.
Código del Método buscar()
PHP
// BUSCAR
/**
* Consulta registros filtrados.
* @param string $tabla Nombre de la tabla.
* @param string $condicion Cláusula WHERE (ej: "id=5" o "1").
* @return array|bool Array asociativo de resultados o false.
*/
public function buscar($tabla, $condicion) {
$resultado = $this->conexion->query("SELECT * FROM $tabla WHERE $condicion")
or die($this->conexion->error);
// Retorna todos los resultados como un array asociativo
if ($resultado && $resultado->num_rows > 0) {
return $resultado->fetch_all(MYSQLI_ASSOC);
}
return false;
}
Ejemplo Práctico de Uso (Listar Todos)
PHP
if ($resultado = $user->buscar("usuarios", "1")) { // Condición "1" trae todos los registros
echo "### Listado de Usuarios ###<br>";
foreach ($resultado as $value) {
echo $value['id'] . " - " . $value['nombre'] . "<br>";
}
} else {
echo "⚠️ No hay registros de usuarios en la base de datos.";
}
✍️ Método UPDATE (ACTUALIZAR): Modifica Datos
✍️ Método UPDATE (ACTUALIZAR): Modifica Datos
La actualización es crucial para cualquier aplicación. El método actualizar() permite modificar uno o varios campos en una tabla, siempre y cuando se cumpla la condición especificada.
Código del Método actualizar()
PHP
// ACTUALIZAR
/**
* Actualiza campos en una tabla.
* @param string $tabla Nombre de la tabla.
* @param string $campos Cadena de campos a actualizar (ej: "nombre='Nuevo', email='a@b.com'").
* @param string $condicion Cláusula WHERE para especificar la fila (ej: "id=1").
* @return bool
*/
public function actualizar($tabla, $campos, $condicion) {
$resultado = $this->conexion->query("UPDATE $tabla SET $campos WHERE $condicion")
or die($this->conexion->error);
// mysqli_query retorna TRUE en caso de éxito o FALSE si hay un error (incluso si no hubo filas afectadas)
if ($resultado) return true;
return false;
}
Ejemplo Práctico de Uso
PHP
$u = $user->actualizar("usuarios", "nombre='ANA MARÍA PÉREZ', edad=30", "id=1");
if ($u) {
echo "✅ Registro actualizado correctamente.";
} else {
echo "❌ Error o no se realizaron cambios.";
}
🗑️ Método DELETE (BORRAR): Remueve Registros
🗑️ Método DELETE (BORRAR): Remueve Registros
El método borrar() es el más simple, pero el más delicado. Permite eliminar filas completas basándose en una condición (generalmente el ID).
Código del Método borrar()
PHP
// BORRAR
/**
* Elimina registros en una tabla.
* @param string $tabla Nombre de la tabla.
* @param string $condicion Cláusula WHERE para especificar la(s) fila(s) a borrar (ej: "id=5").
* @return bool
*/
public function borrar($tabla, $condicion) {
$resultado = $this->conexion->query("DELETE FROM $tabla WHERE $condicion")
or die($this->conexion->error);
if ($resultado) return true;
return false;
}
Ejemplo Práctico de Uso
PHP
$u = $user->borrar("usuarios", "id=1");
if ($u) {
echo "✅ Registro borrado exitosamente.";
} else {
echo "❌ Error al borrar el registro.";
}
📦 Código Completo de la Clase ApptivaDB (db.php)
📦 Código Completo de la Clase ApptivaDB (db.php)
Aquí tienes el código unificado de la clase, listo para usar y optimizado para PHP 7+ y MySQLi POO.
PHP
<?php
/**
* Clase ApptivaDB: Conexión y Métodos CRUD con MySQLi (POO)
* Compatible con PHP 7.0+ y codificación UTF-8.
*/
class ApptivaDB {
// Propiedades de la conexión
private $host = "localhost";
private $usuario = "root";
private $clave = "";
private $db = "test"; // <-- ¡Cambia tu BD!
public $conexion;
/**
* Constructor: Establece la conexión.
*/
public function __construct() {
$this->conexion = new mysqli($this->host, $this->usuario, $this->clave, $this->db)
or die(mysql_error());
$this->conexion->set_charset("utf8");
}
// --- MÉTODOS CRUD ---
/**
* C - CREATE (INSERTAR)
*/
public function insertar($tabla, $datos) {
$resultado = $this->conexion->query("INSERT INTO $tabla VALUES (null, $datos)")
or die($this->conexion->error);
if ($resultado) return true;
return false;
}
/**
* R - READ (BUSCAR)
*/
public function buscar($tabla, $condicion) {
$resultado = $this->conexion->query("SELECT * FROM $tabla WHERE $condicion")
or die($this->conexion->error);
if ($resultado && $resultado->num_rows > 0) {
return $resultado->fetch_all(MYSQLI_ASSOC);
}
return false;
}
/**
* U - UPDATE (ACTUALIZAR)
*/
public function actualizar($tabla, $campos, $condicion) {
$resultado = $this->conexion->query("UPDATE $tabla SET $campos WHERE $condicion")
or die($this->conexion->error);
if ($resultado) return true;
return false;
}
/**
* D - DELETE (BORRAR)
*/
public function borrar($tabla, $condicion) {
$resultado = $this->conexion->query("DELETE FROM $tabla WHERE $condicion")
or die($this->conexion->error);
if ($resultado) return true;
return false;
}
}
?>
Has implementado con éxito una robusta capa de abstracción de datos para tu proyecto PHP. Al utilizar la Programación Orientada a Objetos y MySQLi, has mejorado la modularidad, la reutilización y la escalabilidad de tu código.
💻 Ejemplos Prácticos de Uso de la Clase ApptivaDB
💻 Ejemplos Prácticos de Uso de la Clase ApptivaDB
A continuación, se muestra cómo instanciar la clase y utilizar cada uno de los métodos CRUD (insertar, buscar, actualizar, borrar) para gestionar la tabla usuarios.
Nota: Asegúrate de que tu archivo db.php y el archivo de prueba estén en el mismo directorio.
Configuración Inicial (Instanciar la Clase)
Primero, incluye la clase y crea una nueva instancia para empezar a interactuar con la base de datos.
PHP
<?php
// Incluye el archivo de la clase ApptivaDB
include "db.php";
// Crea una instancia de la clase
$db = new ApptivaDB();
echo "### INICIANDO PRUEBAS CRUD ###<br>";
echo "------------------------------------<br>";
?>
C - CREATE (Método insertar)
Agregaremos algunos registros de prueba a la tabla usuarios.
PHP
// --- EJEMPLO 1: INSERTAR ---
echo "## ➕ Insertar Registros ##<br>";
// Insertamos un primer usuario
$datos_juan = "'Juan', 'Pérez', 'juan.perez@email.com'";
$insert1 = $db->insertar("usuarios", $datos_juan);
if ($insert1) {
echo "✅ Usuario 'Juan Pérez' insertado correctamente.<br>";
} else {
echo "❌ Error al insertar el usuario 1.<br>";
}
// Insertamos un segundo usuario
$datos_ana = "'Ana', 'Gómez', 'ana.gomez@email.com'";
$insert2 = $db->insertar("usuarios", $datos_ana);
if ($insert2) {
echo "✅ Usuario 'Ana Gómez' insertado correctamente.<br>";
} else {
echo "❌ Error al insertar el usuario 2.<br>";
}
echo "------------------------------------<br>";
R - READ (Método buscar)
Consultaremos los registros recién insertados.
3.1. Listar Todos los Registros
PHP
// --- EJEMPLO 2: BUSCAR (TODOS) ---
echo "## 🔍 Buscar Todos los Registros ##<br>";
// La condición "1" o "TRUE" trae todas las filas
if ($registros = $db->buscar("usuarios", "1")) {
echo "Total de Registros Encontrados: " . count($registros) . "<br>";
echo "<pre>";
print_r($registros); // Muestra la estructura del array asociativo
echo "</pre>";
} else {
echo "⚠️ No se encontraron registros en la tabla 'usuarios'.<br>";
}
echo "------------------------------------<br>";
3.2. Buscar un Registro Específico
PHP
// --- EJEMPLO 3: BUSCAR (CONDICIÓN ESPECÍFICA) ---
echo "## 🔍 Buscar por Condición (ID > 1) ##<br>";
// Busca usuarios cuyo ID sea mayor a 1
if ($filtrados = $db->buscar("usuarios", "id > 1")) {
echo "Registros Filtrados (ID > 1):<br>";
foreach ($filtrados as $usuario) {
echo "ID: **{$usuario['id']}** | Nombre: {$usuario['nombre']} {$usuario['apellido']}<br>";
}
} else {
echo "⚠️ No se encontraron registros con la condición especificada.<br>";
}
echo "------------------------------------<br>";
U - UPDATE (Método actualizar)
Modificaremos los datos de uno de los usuarios usando su ID.
PHP
// --- EJEMPLO 4: ACTUALIZAR ---
echo "## ✍️ Actualizar un Registro ##<br>";
// Supongamos que queremos actualizar el nombre del usuario con ID=1
$campos_a_actualizar = "nombre='JUAN PABLO', email='juanpablo@nuevo.com'";
$condicion = "id=1";
$update = $db->actualizar("usuarios", $campos_a_actualizar, $condicion);
if ($update) {
echo "✅ Usuario con ID 1 actualizado a **JUAN PABLO**.<br>";
// Verificamos la actualización
$verificar = $db->buscar("usuarios", "id=1");
if ($verificar) {
echo "Nuevo nombre: " . $verificar[0]['nombre'] . "<br>";
}
} else {
echo "❌ Error al actualizar o no se realizaron cambios en el usuario ID 1.<br>";
}
echo "------------------------------------<br>";
D - DELETE (Método borrar)
Finalmente, eliminaremos un registro.
PHP
// --- EJEMPLO 5: BORRAR ---
echo "## 🗑️ Eliminar un Registro ##<br>";
// Eliminamos el usuario cuyo ID sea igual a 2
$condicion_borrar = "id=2";
$delete = $db->borrar("usuarios", $condicion_borrar);
if ($delete) {
echo "✅ Usuario con ID 2 borrado exitosamente.<br>";
} else {
echo "❌ Error al borrar el usuario ID 2.<br>";
}
echo "------------------------------------<br>";
// Comprobación final
echo "## 🔍 Comprobación Final ##<br>";
if ($final = $db->buscar("usuarios", "1")) {
echo "Registros restantes: " . count($final) . ".<br>";
} else {
echo "La tabla de usuarios está vacía.<br>";
}
?>
Leido 49135 veces | 6 usuarios
Conexión y métodos de consulta a una BD MYSQL
Accede al código fuente esencial de nuestra aplicación en formato ZIP ó TXT. Ideal para desarrolladores que desean personalizar o integrar nuestra solución.
- [ Descargas: 251 ]
CÓDIGO FUENTE: USD 0.00
Conversar con J.Luis