Verwendung von MySQLi aus einer anderen Klasse in PHP: Eine detaillierte Aufschlüsselung
In dieser Abfrage hat der Benutzer MySQL nach dem Übergang von PHP auf MySQLi aktualisiert 5,6 bis 7,0. Nachdem sie der Anleitung „Verwenden von MySQLi in anderen Klassen“ gefolgt waren, stießen sie auf den internen Serverfehler 500, als sie versuchten, von einer anderen Klasse aus auf eine Datenbankverbindung zuzugreifen.
Um den Fehler zu verstehen, untersuchen wir den PHP-Code des Benutzers. Sie haben drei Klassen: eine Datenbankklasse zum Herstellen der MySQLi-Verbindung, eine MyAPI-Klasse, in der sie versuchen, auf diese Verbindung zuzugreifen, und eine separate Funktion, in der sie die eigentliche Datenbankabfrage durchführen.
Fehleranalyse
Das Problem ergibt sich aus mehreren grundlegenden Problemen im Code:
Lösung
Um diese Probleme anzugehen, ist die Folgende Schritte werden empfohlen:
Hier ist ein verbesserter PHP-Code Beispiel:
database.php
<?php mysqli_report(MYSQLI_REPORT_ERROR | MYSQLI_REPORT_STRICT); $db = new mysqli("localhost", "DBUserName", "UserPassword", "SelectedDB"); $db->set_charset('utf8mb4');
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>
app.php
<?php # require_once 'Database.php'; # require_once 'myapi.php'; require 'vendor/autoload.php'; // autoloading is a must $api = new MyAPI($db, $request_uri, $postData, $origin); $user = $api->getUser($_POST['id']);
Mit diesen Änderungen sollte der Benutzer in der Lage sein, eine ordnungsgemäße Verbindung herzustellen MySQLi-Verbindung und Durchführung von Datenbankabfragen aus verschiedenen Klassen.
Das obige ist der detaillierte Inhalt vonWie greife ich von verschiedenen Klassen in PHP aus ordnungsgemäß auf eine MySQLi-Datenbankverbindung zu?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!