Heim > Backend-Entwicklung > PHP-Tutorial > Warum erhalte ich in PHP den Fehler „Aufruf einer Member-Funktion Prepare() für ein Nicht-Objekt'?

Warum erhalte ich in PHP den Fehler „Aufruf einer Member-Funktion Prepare() für ein Nicht-Objekt'?

DDD
Freigeben: 2024-11-28 11:45:14
Original
680 Leute haben es durchsucht

Why Am I Getting the

PHP: Behebung des Fehlers „Aufruf einer Member-Funktion Prepare() für ein Nicht-Objekt“

Bei Verwendung vorbereiteter Anweisungen in PHP , weist der Fehler „Aufruf einer Mitgliedsfunktion Prepare() für ein Nicht-Objekt“ auf eine falsche oder fehlende Datenbankverbindung hin. Um dieses Problem zu beheben, stellen Sie sicher, dass die Datenbankverbindung ordnungsgemäß erstellt und innerhalb der Funktion zugänglich ist.

Im bereitgestellten Beispiel tritt der Fehler auf, weil die Variable $DBH innerhalb der Funktion selectInfo() nicht zugänglich ist. Dies ist auf den variablen Geltungsbereich zurückzuführen. Um dies zu beheben, haben wir mehrere Möglichkeiten:

  1. Verwenden Sie das globale Schlüsselwort:

    • Machen Sie die $DBH-Variable global, indem Sie sie voranstellen mit global, sodass die Funktion darauf zugreifen kann. Dies wird jedoch nicht empfohlen, da es den globalen Namensraum verschmutzt.
  2. Übergeben Sie die Datenbankverbindung als Parameter:

    • Übergeben Sie die Variable $DBH als Parameter an die Funktion selectInfo() und stellen Sie so deren Verfügbarkeit innerhalb der Funktion sicher. Dadurch bleibt die Variablenlokalität erhalten, es ist jedoch eine Änderung des Funktionsaufrufs erforderlich.
  3. Erstellen Sie eine Datenbankverbindungsabruffunktion:

    • Definieren Sie eine Funktion, um die Datenbankverbindung abzurufen und sie für Funktionen verfügbar zu machen, die sie benötigen. Dadurch wird die Verbindungslogik gekapselt und die Referenzierung globaler Variablen vermieden.
  4. Implementieren Sie eine Datenbank-Wrapper-Klasse:

    • Datenbankzugriff kapseln innerhalb einer Klasse und stellt eine Schnittstelle zum Ausführen von Operationen bereit, ohne die Verbindung direkt zu manipulieren. Dies ermöglicht eine zentrale Verbindungsverwaltung und vereinfacht Datenbankinteraktionen.
  5. Verwenden Sie ein vorgefertigtes Framework oder eine vorgefertigte Bibliothek:

    • Nutzen Sie etablierte Frameworks oder Datenbankzugriffsbibliotheken, die eine strukturierte und effiziente Möglichkeit bieten, Datenbankverbindungen und -vorgänge, einschließlich vorbereiteter, zu verwalten Anweisungen.

Durch die Verwendung einer dieser Methoden können Sie eine ordnungsgemäße Verbindung herstellen und den Fehler „Aufruf einer Mitgliedsfunktion Prepare() für ein Nicht-Objekt“ beheben. Damit Ihre vorbereitete Anweisung erfolgreich ausgeführt werden kann.

Das obige ist der detaillierte Inhalt vonWarum erhalte ich in PHP den Fehler „Aufruf einer Member-Funktion Prepare() für ein Nicht-Objekt'?. 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
Beliebte Tutorials
Mehr>
Neueste Downloads
Mehr>
Web-Effekte
Quellcode der Website
Website-Materialien
Frontend-Vorlage