Beim Upgrade von PHP 5.6 auf 7.0 ist ein Update von MySQL auf MySQLi erforderlich. Dies kann jedoch manchmal zu Setup-Problemen führen.
Problem:
Nach dem Upgrade auf PHP 7.0 und MySQLi wird versucht, mit $this->db auf Datenbankverbindungen zuzugreifen ->conn führt zu einem internen Serverfehler 500, obwohl die Datenbankverbindung direkt in der Klasse erstellt wird funktioniert.
Lösung:
Der Fehler wird durch mehrere schlechte Praktiken verursacht:
Um das zu beheben Problem:
Beispiel Code:
// database.php $db = new mysqli("localhost", "DBUserName", "UserPassword", "SelectedDB"); $db->set_charset('utf8mb4');
// myapi.php class MyAPI { protected $db; public function __construct($db, $request_uri, $postData, $origin) { $this->db = $db; } // ... (rest of the class omitted for brevity) }
// app.php require 'vendor/autoload.php'; // assuming autoloading is set up $api = new MyAPI($db, $request_uri, $postData, $origin); $user = $api->getUser($_POST['id']);
Wenn Sie diese Richtlinien befolgen, können Sie MySQLi erfolgreich aus anderen Klassen in PHP verwenden.
Das obige ist der detaillierte Inhalt vonWie verwende ich MySQLi-Verbindungen über verschiedene PHP-Klassen hinweg richtig?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!