


Wie kann ich von einer separaten Klasse in PHP aus ordnungsgemäß auf eine MySQLi-Verbindung zugreifen?
Dec 10, 2024 pm 04:22 PMMySQLi 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');
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_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']);
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!

Heißer Artikel

Hot-Tools-Tags

Heißer Artikel

Heiße Artikel -Tags

Notepad++7.3.1
Einfach zu bedienender und kostenloser Code-Editor

SublimeText3 chinesische Version
Chinesische Version, sehr einfach zu bedienen

Senden Sie Studio 13.0.1
Leistungsstarke integrierte PHP-Entwicklungsumgebung

Dreamweaver CS6
Visuelle Webentwicklungstools

SublimeText3 Mac-Version
Codebearbeitungssoftware auf Gottesniveau (SublimeText3)

Heiße Themen

Reduzieren Sie die Verwendung des MySQL -Speichers im Docker

Wie verändern Sie eine Tabelle in MySQL mit der Änderungstabelleanweisung?

So lösen Sie das Problem der MySQL können die gemeinsame Bibliothek nicht öffnen

Führen Sie MySQL in Linux aus (mit/ohne Podman -Container mit Phpmyadmin)

Ausführen mehrerer MySQL-Versionen auf macOS: Eine Schritt-für-Schritt-Anleitung

Wie sichere ich mich MySQL gegen gemeinsame Schwachstellen (SQL-Injektion, Brute-Force-Angriffe)?

Wie konfiguriere ich die SSL/TLS -Verschlüsselung für MySQL -Verbindungen?
