Heim > Datenbank > MySQL-Tutorial > Wie kann ich von verschiedenen PHP-Klassen aus ordnungsgemäß auf eine MySQLi-Datenbankverbindung zugreifen?

Wie kann ich von verschiedenen PHP-Klassen aus ordnungsgemäß auf eine MySQLi-Datenbankverbindung zugreifen?

Mary-Kate Olsen
Freigeben: 2024-12-18 02:29:09
Original
493 Leute haben es durchsucht

How Can I Properly Access a MySQLi Database Connection from Different PHP Classes?

Zugriff auf die MySQLi-Verbindung von anderen Klassen in PHP aus

Beim Upgrade von PHP 5.6 auf 7.0 ist es wichtig, von MySQL auf MySQLi umzusteigen. Dieser Übergang kann zu Herausforderungen führen, insbesondere wenn versucht wird, von separaten Klassen aus auf MySQLi-Verbindungen zuzugreifen. Diese Frage beleuchtet eine solche Situation, in der der Versuch, von einer API-Klasse aus mithilfe einer Datenbankklasse eine Verbindung zu einer Datenbank herzustellen, zu einem internen Serverfehler führte.

Die Ursache des Problems liegt in der Einhaltung guter Programmierpraktiken. Das Erweitern eines Benutzers aus einer Datenbankklasse ist falsch und der Datenbankklasse selbst fehlen wesentliche Funktionen. Um diesen Fehler zu beheben und das Gesamtdesign zu verbessern, berücksichtigen Sie die folgenden Schritte:

  1. Entfernen Sie die redundante Datenbankklasse. Es erfüllt keinen bestimmten Zweck und führt zu unnötiger Komplexität.
  2. Erstellen Sie eine einzelne $db-Instanz aus Vanilla MySQLi. Diese Instanz dient als zentraler Verbindungspunkt für alle Datenbankoperationen.
  3. Übergeben Sie die $db-Instanz als Konstruktorparameter an jede Klasse, die eine Datenbankverbindung erfordert. Indem Sie diese Schritte befolgen, erstellen Sie eine sauberere und besser wartbare Codebasis. Die aktualisierte Codestruktur könnte wie folgt aussehen:
database.php
<?php
mysqli_report(MYSQLI_REPORT_ERROR | MYSQLI_REPORT_STRICT);
$db = new mysqli("localhost", "DBUserName", "UserPassword", "SelectedDB");
$db->set_charset('utf8mb4');
Nach dem Login kopieren
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>
Nach dem Login kopieren
app.php
<?php
require 'vendor/autoload.php'; // autoloading is recommended

$api = new MyAPI($db, $request_uri, $postData, $origin);
$user = $api->getUser($_POST['id']);
Nach dem Login kopieren

Das obige ist der detaillierte Inhalt vonWie kann ich von verschiedenen PHP-Klassen aus ordnungsgemäß auf eine MySQLi-Datenbankverbindung zugreifen?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Quelle:php.cn
Erklärung dieser Website
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn
Neueste Artikel des Autors
Beliebte Tutorials
Mehr>
Neueste Downloads
Mehr>
Web-Effekte
Quellcode der Website
Website-Materialien
Frontend-Vorlage