"Si un trabajador quiere hacer bien su trabajo, primero debe afilar sus herramientas." - Confucio, "Las Analectas de Confucio. Lu Linggong"
Página delantera > Programación > ¿Cómo compartir una conexión MySQLi entre diferentes clases en PHP?

¿Cómo compartir una conexión MySQLi entre diferentes clases en PHP?

Publicado el 2024-11-02
Navegar:825

How to Share a MySQLi Connection Between Different Classes in PHP?

Usar MySQLi en clases: una guía para solucionar problemas

Usar MySQLi de diferentes clases puede ser un desafío, pero no te preocupes. Profundicemos en los problemas que ha encontrado y proporcionemos una solución.

Problema: Error interno del servidor 500

  • Causa: Intento para acceder a la propiedad conn del objeto de base de datos después de crearlo en una clase diferente (MyAPI).

Solución: Inicialice el objeto Base de datos dentro del constructor MyAPI y páselo como parámetro a otras funciones que requieran una conexión a la base de datos. Esto garantiza que todas las clases que comparten la conexión tengan una referencia directa a la misma instancia.

Ejemplo:

// myapi.php
class MyAPI {
    private $db;

    public function __construct($db) {
        $this->db = $db;
    }

    public function getUser($id) {
        $result = mysqli_query($this->db->conn, "SELECT * FROM users WHERE id='$id'");
        return mysqli_fetch_assoc($result);
    }
}

// app.php
// Initialize database once
$db = new mysqli(...);

// Create MyAPI instance with database reference
$api = new MyAPI($db);

// Use MyAPI to access user information
$user = $api->getUser(1);

Consideraciones adicionales:

  • Evite extender Usuario desde la base de datos, ya que no es necesario.
  • Cree directamente una única instancia de mysqli y pásela a las clases que la necesiten.
  • Utilice declaraciones preparadas para mayor seguridad y rendimiento.
  • Asegúrese de que los parámetros de conexión de la base de datos sean correctos y que la base de datos sea accesible.

Al seguir estos pasos, debería poder usar MySQLi con éxito desde diferentes clases en PHP.

Último tutorial Más>

Descargo de responsabilidad: Todos los recursos proporcionados provienen en parte de Internet. Si existe alguna infracción de sus derechos de autor u otros derechos e intereses, explique los motivos detallados y proporcione pruebas de los derechos de autor o derechos e intereses y luego envíelos al correo electrónico: [email protected]. Lo manejaremos por usted lo antes posible.

Copyright© 2022 湘ICP备2022001581号-3