Heim > Datenbank > MySQL-Tutorial > Wie kann ich von einer separaten Klasse in PHP aus ordnungsgemäß auf eine MySQLi-Verbindung zugreifen?

Wie kann ich von einer separaten Klasse in PHP aus ordnungsgemäß auf eine MySQLi-Verbindung zugreifen?

Patricia Arquette
Freigeben: 2024-12-10 16:22:09
Original
262 Leute haben es durchsucht

How Can I Properly Access a MySQLi Connection from a Separate Class in PHP?

MySQLi aus einer anderen Klasse in PHP verwenden

Problembeschreibung:

Die Frage sucht nach Hilfe beim Zugriff auf eine MySQLi-Verbindung, die in einer separaten Klasse von einer anderen Klasse aus hergestellt wurde. Eine Datenbankklasse mit einer Verbindungseigenschaft wird erstellt und eine API-Klasse versucht, auf diese Verbindung zuzugreifen. Versuche, auf die Verbindung zuzugreifen, führen jedoch zu einem internen Serverfehler.

Antwort:

Bad Practices und Empfehlungen:

Der bereitgestellte Code enthält mehrere schlechte Praktiken, die zum Fehler beitragen:

  • Erweitern einer Klasse (Benutzer) von Die Database-Klasse ist ungeeignet.
  • Der Database-Klasse fehlen wesentliche Funktionen.

Es wird empfohlen:

  • Die Database-Klasse zu eliminieren, da sie keinen Zweck erfüllt sinnvoller Zweck.
  • Erstellen Sie eine einzelne $db-Instanz aus Vanilla MySQL.
  • Übergeben Sie diese Instanz als ein Konstruktorargument für Klassen, die eine Datenbankverbindung erfordern.

Überarbeitet Code:

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_once 'Database.php';
# require_once 'myapi.php';
require 'vendor/autoload.php'; // autoloading is essential

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

Wenn Sie diese Empfehlungen befolgen, ist dies der Fall Es ist möglich, von einer anderen Klasse aus effektiv und fehlerfrei auf die MySQLi-Verbindung zuzugreifen.

Das obige ist der detaillierte Inhalt vonWie kann ich von einer separaten Klasse in PHP aus ordnungsgemäß auf eine MySQLi-Verbindung 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