Maison > développement back-end > tutoriel php > Voici quelques options de titre, en gardant à l'esprit le format de la question et en vous concentrant sur le problème MySQLi : **Direct et concis :** * **Pourquoi ne puis-je pas accéder à ma connexion MySQLi à partir d'une classe distincte ?** * **MonS

Voici quelques options de titre, en gardant à l'esprit le format de la question et en vous concentrant sur le problème MySQLi : **Direct et concis :** * **Pourquoi ne puis-je pas accéder à ma connexion MySQLi à partir d'une classe distincte ?** * **MonS

Barbara Streisand
Libérer: 2024-10-25 12:52:30
original
617 Les gens l'ont consulté

Here are a few title options, keeping in mind the question format and focus on the MySQLi issue:

**Direct and Concise:**

* **Why Can't I Access My MySQLi Connection from a Separate Class?**
* **MySQLi Connection Issues: Accessing from a Different Class

Comment utiliser MySQLi à partir d'une classe distincte en PHP

Introduction

Mise à niveau depuis PHP 5.6 à 7.0 nécessite le passage de MySQL à MySQLi, ce qui peut perturber les configurations existantes. Cet article traite d'un problème rencontré lors de la tentative d'accès à une connexion MySQLi à partir d'une classe distincte.

Problème

Un programmeur a tenté d'accéder à une connexion MySQLi créée dans une classe de base de données à partir d'une classe API, rencontrant une erreur de serveur interne (500) lors de l'appel de la connexion. Cependant, la connexion directe au sein de la classe API a résolu le problème.

Solution

Plusieurs modifications recommandées peuvent résoudre le problème :

  • Éliminez la classe de base de données : La classe de base de données est redondante car elle manque de fonctionnalités.
  • Créez une seule instance MySQLi : Établissez une seule instance MySQLi à l'aide de la classe mysqli native.
  • Passez l'instance en tant que paramètre : Injectez l'instance MySQLi en tant que paramètre de constructeur dans les classes nécessitant une connectivité à la base de données.

Exemple de code :

database.php :

<code class="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">class MyAPI
{
    protected $db;

    public function __construct($db, $request_uri, $postData, $origin)
    {
        $this->db = $db;
    }
}</code>
Copier après la connexion

app.php :

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

$api = new MyAPI($db, $request_uri, $postData, $origin);</code>
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