Inicio » Blog » PHP

Conexión y métodos de consulta a una BD MYSQL

Autor: J. Luis, 1 diciembre, 2025

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

¿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:

  1. Una conexión segura a la base de datos.
  2. 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

🏗️ 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

➕ 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

🔍 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

✍️ 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

🗑️ 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)

📦 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

💻 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

Descarga del código fuente

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 ]

Compartir link del tutorial con tus amigos

CÓDIGO FUENTE: USD 0.00

Conversar con J.Luis

Codea Applications

México, Colombia, España, Venezuela, Argentina, Bolivia, Perú