Inicio » Blog »

21 octubre, 2024

Conexión a una Base de Datos Mysql con PHP PDO

Script para conectar una base de datos MYSQL en PHP PDO de forma eficiente y segura en una aplicación web: Clase conexion.php , modelo.php y index.php

Conexión a una Base de Datos Mysql con PHP PDO

Suscríbete a nuestro canal en Youtube

Suscríbirse

Crear una clase abstracta en PHP para manejar la conexión a una base de datos MySQL de forma segura utilizando PDO (PHP Data Objects) es una buena práctica. Esto no solo proporciona una forma organizada de manejar las conexiones, sino que también facilita la reutilización del código.

A continuación, te muestro cómo implementar una clase abstracta que maneje la conexión a la base de datos usando PDO, junto con un ejemplo de uso.

Clase Abstracta Database

php

<?php

abstract class Database {
    private static $instance = null;
    protected $connection;

    // Constructor privado para evitar instanciación externa
    private function __construct() {
        $this->connect();
    }

    // Método para obtener la instancia de la clase
    public static function getInstance() {
        if (self::$instance === null) {
            self::$instance = new static();
        }
        return self::$instance;
    }

    // Método para realizar la conexión a la base de datos
    protected function connect() {
        $host = 'localhost'; // Cambia esto según tu configuración
        $dbname = 'tu_base_de_datos'; // Cambia esto por el nombre de tu base de datos
        $user = 'tu_usuario'; // Cambia esto por tu usuario de MySQL
        $password = 'tu_contraseña'; // Cambia esto por tu contraseña de MySQL

        try {
            $this->connection = new PDO("mysql:host=$host;dbname=$dbname;charset=utf8", $user, $password);
            // Establecer el modo de error de PDO a excepción
            $this->connection->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION);
            $this->connection->setAttribute(PDO::ATTR_DEFAULT_FETCH_MODE, PDO::FETCH_ASSOC);
        } catch (PDOException $e) {
            // Manejar error de conexión
            echo "Error de conexión: " . $e->getMessage();
            exit;
        }
    }

    // Método para obtener la conexión
    public function getConnection() {
        return $this->connection;
    }
}

Clase Derivada para Uso Específico

Puedes crear una clase que extienda la clase abstracta Database para interactuar con la base de datos. Por ejemplo:

php

<?php

class UserDatabase extends Database {
    public function getUsers() {
        $query = "SELECT * FROM users";
        $stmt = $this->getConnection()->prepare($query);
        $stmt->execute();
        return $stmt->fetchAll();
    }

    public function addUser($name, $email) {
        $query = "INSERT INTO users (name, email) VALUES (:name, :email)";
        $stmt = $this->getConnection()->prepare($query);
        $stmt->bindParam(':name', $name);
        $stmt->bindParam(':email', $email);
        $stmt->execute();
    }
}

Ejemplo de Uso

Aquí tienes un ejemplo de cómo utilizar las clases para obtener y agregar usuarios:

php
// Incluir las clases
require_once 'Database.php';
require_once 'UserDatabase.php';

// Obtener instancia de UserDatabase
$userDb = UserDatabase::getInstance();

// Agregar un nuevo usuario
$userDb->addUser('Juan Pérez', 'juan@example.com');

// Obtener y mostrar todos los usuarios
$users = $userDb->getUsers();
foreach ($users as $user) {
    echo "ID: {$user['id']}, Nombre: {$user['name']}, Email: {$user['email']}<br>";
}
  • Uso de Sentencias Preparadas: La implementación de sentencias preparadas con parámetros vinculados ayuda a prevenir inyecciones SQL.
  • Manejo de Errores: Capturar excepciones y manejar errores de conexión de manera adecuada es importante para la seguridad y estabilidad de la aplicación.
  • Configuración del Charset: Usar charset=utf8 o charset=utf8mb4 para manejar correctamente los caracteres especiales y evitar problemas de codificación.

Con esta estructura, tienes una clase abstracta para la conexión a la base de datos que es reutilizable y segura, junto con un ejemplo práctico de cómo interactuar con la base de datos. Si necesitas más detalles o ajustes, ¡déjamelo saber!

 


Leido 11046 veces | 2 usuarios

Descarga del código fuente PHP de Conexión a una Base de Datos Mysql con PHP PDO

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.

Opciones de descarga

  • Usuarios Registrados: Inicia sesión para descarga inmediata.
  • Nuevos Usuarios: Regístrate y descarga.

216 descargas

Para descargar el código inicia sesión o crea una cuenta

Iniciar Sesión

Compartir link del tutorial con tus amigos


MVC PHP y MySql Página Web

USD 11.00

Descarga del código fuente

MVC PHP y MySql Página Web

Codea Applications

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