Hier sind einige Titeloptionen unter Berücksichtigung des Fragenformats und des Schwerpunkts auf dem MySQLi-Problem: **Direkt und prägnant:** * **Warum kann ich nicht von einer separaten Klasse aus auf meine MySQLi-Verbindung zugreifen?** * **MyS

Barbara Streisand
Freigeben: 2024-10-25 12:52:30
Original
486 Leute haben es durchsucht

Here are a few title options, keeping in mind the question format and focus on the MySQLi issue:

**Direct and Concise:**

* **Why Can't I Access My MySQLi Connection from a Separate Class?**
* **MySQLi Connection Issues: Accessing from a Different Class

So nutzen Sie MySQLi aus einer separaten Klasse in PHP

Einführung

Upgrade von PHP Von Version 5.6 auf 7.0 ist ein Wechsel von MySQL zu MySQLi erforderlich, was zu Störungen bestehender Setups führen kann. Dieser Artikel befasst sich mit einem Problem, das beim Versuch auftritt, von einer separaten Klasse aus auf eine MySQLi-Verbindung zuzugreifen.

Problem

Ein Programmierer hat versucht, auf eine MySQLi-Verbindung zuzugreifen, die in einer Datenbankklasse erstellt wurde von einer API-Klasse, beim Aufrufen der Verbindung ist ein interner Serverfehler (500) aufgetreten. Das Problem wurde jedoch durch eine direkte Verbindung innerhalb der API-Klasse behoben.

Lösung

Mehrere empfohlene Änderungen können das Problem beheben:

  • Entfernen Sie die Datenbankklasse: Die Datenbankklasse ist redundant, da ihr die Funktionalität fehlt.
  • Erstellen Sie eine einzelne MySQLi-Instanz: Erstellen Sie eine einzelne MySQLi-Instanz mit der nativen MySQLi-Klasse.
  • Übergeben Sie die Instanz als Parameter:Injizieren Sie die MySQLi-Instanz als Konstruktorparameter in Klassen, die Datenbankkonnektivität erfordern.

Beispielcode:

database.php:

<code class="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">class MyAPI
{
    protected $db;

    public function __construct($db, $request_uri, $postData, $origin)
    {
        $this->db = $db;
    }
}</code>
Nach dem Login kopieren

app.php:

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

$api = new MyAPI($db, $request_uri, $postData, $origin);</code>
Nach dem Login kopieren

Das obige ist der detaillierte Inhalt vonHier sind einige Titeloptionen unter Berücksichtigung des Fragenformats und des Schwerpunkts auf dem MySQLi-Problem: **Direkt und prägnant:** * **Warum kann ich nicht von einer separaten Klasse aus auf meine MySQLi-Verbindung zugreifen?** * **MyS. 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!