Maison > base de données > tutoriel mysql > Comment puis-je accéder correctement à une connexion à une base de données MySQLi à partir de différentes classes PHP ?

Comment puis-je accéder correctement à une connexion à une base de données MySQLi à partir de différentes classes PHP ?

Mary-Kate Olsen
Libérer: 2024-12-18 02:29:09
original
563 Les gens l'ont consulté

How Can I Properly Access a MySQLi Database Connection from Different PHP Classes?

Accès à la connexion MySQLi à partir d'autres classes en PHP

Lors de la mise à niveau de PHP 5.6 vers 7.0, il est essentiel de passer de MySQL à MySQLi. Cette transition peut introduire des défis, en particulier lorsque l'on tente d'accéder aux connexions MySQLi à partir de classes distinctes. Cette question met en évidence une situation dans laquelle une tentative de connexion à une base de données à partir d'une classe API utilisant une classe de base de données a conduit à une erreur de serveur interne.

La racine du problème réside dans le respect des bonnes pratiques de programmation. L'extension d'un utilisateur à partir d'une classe de base de données est incorrecte et la classe de base de données elle-même manque de fonctionnalités significatives. Pour résoudre cette erreur et améliorer la conception globale, envisagez les étapes suivantes :

  1. Éliminez la classe de base de données redondante. Il ne sert aucun objectif spécifique et introduit une complexité inutile.
  2. Créez une seule instance $db à partir de MySQLi Vanilla. Cette instance servira de point de connexion central pour toutes les opérations de base de données.
  3. Passez l'instance $db en tant que paramètre de constructeur à chaque classe qui nécessite une connexion à la base de données. En suivant ces étapes, vous établissez une base de code plus propre et plus maintenable. La structure du code mise à jour pourrait ressembler à :
database.php
<?php
mysqli_report(MYSQLI_REPORT_ERROR | MYSQLI_REPORT_STRICT);
$db = new mysqli("localhost", "DBUserName", "UserPassword", "SelectedDB");
$db->set_charset('utf8mb4');
Copier après la connexion
myapi.php
<?php
class MyAPI
{
    protected $db;

    public function __construct($db, $request_uri, $postData, $origin)
    {
        $this->db = $db;
    }

    public function getUser($id)
    {
        $sql = "SELECT * FROM users where>
Copier après la connexion
app.php
<?php
require 'vendor/autoload.php'; // autoloading is recommended

$api = new MyAPI($db, $request_uri, $postData, $origin);
$user = $api->getUser($_POST['id']);
Copier après la connexion

Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!

Déclaration de ce site Web
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn
Derniers articles par auteur
Tutoriels populaires
Plus>
Derniers téléchargements
Plus>
effets Web
Code source du site Web
Matériel du site Web
Modèle frontal