Comment accéder à MySQLi depuis une classe externe en PHP 7.0 ?

Susan Sarandon
Libérer: 2024-10-26 08:21:30
original
154 Les gens l'ont consulté

How to Access MySQLi from an External Class in PHP 7.0?

Accès à MySQLi à partir d'une classe externe en PHP

Problème :

Après la mise à niveau depuis PHP 5.6 à 7.0, une configuration existante qui utilise à la fois les classes MySQL et MyAPI a rencontré des problèmes. Plus précisément, l'accès à la connexion à la base de données à partir de la classe MyAPI entraîne une erreur de serveur interne 500.

Solution :

Plusieurs pratiques contribuent à cette erreur :

  1. Éviter l'héritage : L'extension de MyAPI à partir d'une classe de base de données est redondante et inutile.
  2. Supprimer la classe de base de données redondante : La classe de base de données ne sert à rien objectif car il établit principalement une connexion, qui peut être facilement réalisée via la classe mysqli vanilla.
  3. Créez une instance de base de données centralisée : Établissez une instance unique et globale de la connexion à la base de données et transmettez-la à chaque classe qui nécessite un accès à la base de données.

Structure du code :

Créez trois fichiers :

  • base de données. php : Contient la logique de connexion à la base de données.
  • myapi.php : Définit la classe MyAPI avec injection de dépendances pour la connexion à la base de données.
  • app. php : agit comme point d'entrée et instancie la classe MyAPI, en transmettant la connexion à la base de données.

database.php :

<code class="php"><?php
mysqli_report(MYSQLI_REPORT_ERROR | MYSQLI_REPORT_STRICT);
$db = new mysqli("localhost", "DBUserName", "UserPassword", "SelectedDB");
$db->set_charset('utf8mb4');</code>
Copier après la connexion

myapi.php :

<code class="php"><?php
class MyAPI
{
    protected $db;

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

    public function getUser($id)
    {
        // Define SQL query and subsequent operations to fetch user data.
    }
}</code>
Copier après la connexion

app.php :

<code class="php"><?php
require 'database.php';
require 'myapi.php';

$api = new MyAPI($db);
$user = $api->getUser($_POST['id']);</code>
Copier après la connexion

En suivant ces directives et en séparant les problèmes de base de données des fonctionnalités de classe, le le problème de l'accès à MySQLi à partir d'une classe externe peut être résolu efficacement.

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
À propos de nous Clause de non-responsabilité Sitemap
Site Web PHP chinois:Formation PHP en ligne sur le bien-être public,Aidez les apprenants PHP à grandir rapidement!