Inicio » Blog » PHP

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 10341 veces | 1 usuarios

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

215 descargas

Para descargar el código crea una cuenta

Crear cuenta

Compartir link del tutorial con tus amigos


MVC PHP y MySql Página Web

USD 10.00

Descarga del código fuente

MVC PHP y MySql Página Web

Más tutoriales de PHP

Codea Applications

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

© Copyright Codea::App Cursos de Programación Online | LATAM | 2020 - 2024