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
Mary-Kate OlsenOriginal
2024-12-18 02:29:09549Durchsuche

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');
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 'vendor/autoload.php'; // autoloading is recommended

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

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!

Stellungnahme:
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