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
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 :
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>
myapi.php :
<code class="php">class MyAPI { protected $db; public function __construct($db, $request_uri, $postData, $origin) { $this->db = $db; } }</code>
app.php :
<code class="php">require 'database.php'; require 'myapi.php'; $api = new MyAPI($db, $request_uri, $postData, $origin);</code>
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!