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
492 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!

source:php.cn
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