Wie greife ich von einer externen Klasse in PHP 7.0 auf MySQLi zu?

Susan Sarandon
Freigeben: 2024-10-26 08:21:30
Original
154 Leute haben es durchsucht

How to Access MySQLi from an External Class in PHP 7.0?

Zugriff auf MySQLi über eine externe Klasse in PHP

Problem:

Nach dem Upgrade von PHP Von 5.6 bis 7.0 sind bei einem vorhandenen Setup, das sowohl MySQL- als auch MyAPI-Klassen verwendet, Probleme aufgetreten. Insbesondere führt der Zugriff auf die Datenbankverbindung über die MyAPI-Klasse zu einem 500-internen Serverfehler.

Lösung:

Es gibt mehrere Vorgehensweisen, die zu diesem Fehler beitragen:

  1. Vererbung vermeiden: Das Erweitern von MyAPI aus einer Datenbankklasse ist überflüssig und unnötig.
  2. Redundante Datenbankklasse entfernen: Die Datenbankklasse hat keinen praktischen Nutzen Zweck, da es in erster Linie eine Verbindung herstellt, was leicht über die Vanilla-MySQL-Klasse erreicht werden kann.
  3. Erstellen Sie eine zentralisierte Datenbankinstanz: Erstellen Sie eine einzelne, globale Instanz der Datenbankverbindung und übergeben Sie sie für jede Klasse, die Datenbankzugriff erfordert.

Codestruktur:

Erstellen Sie drei Dateien:

  • Datenbank. php: Enthält die Datenbankverbindungslogik.
  • myapi.php: Definiert die MyAPI-Klasse mit Abhängigkeitsinjektion für die Datenbankverbindung.
  • app. php: Fungiert als Einstiegspunkt und instanziiert die MyAPI-Klasse und übergibt die Datenbankverbindung.

database.php:

<code class="php"><?php
mysqli_report(MYSQLI_REPORT_ERROR | MYSQLI_REPORT_STRICT);
$db = new mysqli("localhost", "DBUserName", "UserPassword", "SelectedDB");
$db->set_charset('utf8mb4');</code>
Nach dem Login kopieren

myapi.php:

<code class="php"><?php
class MyAPI
{
    protected $db;

    public function __construct($db)
    {
        $this->db = $db;
    }

    public function getUser($id)
    {
        // Define SQL query and subsequent operations to fetch user data.
    }
}</code>
Nach dem Login kopieren

app.php:

<code class="php"><?php
require 'database.php';
require 'myapi.php';

$api = new MyAPI($db);
$user = $api->getUser($_POST['id']);</code>
Nach dem Login kopieren

Durch die Befolgung dieser Richtlinien und die Trennung von Datenbankbelangen und Klassenfunktionen wird die Das Problem des Zugriffs auf MySQLi von einer externen Klasse aus kann effektiv gelöst werden.

Das obige ist der detaillierte Inhalt vonWie greife ich von einer externen Klasse in PHP 7.0 auf MySQLi zu?. 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
Über uns Haftungsausschluss Sitemap
Chinesische PHP-Website:Online-PHP-Schulung für das Gemeinwohl,Helfen Sie PHP-Lernenden, sich schnell weiterzuentwickeln!