Heim > Backend-Entwicklung > PHP-Tutorial > Warum erhalte ich beim Versuch, Kategorien abzurufen, die Meldung „Schwerwiegender Fehler: Aufruf einer Member-Funktion Prepare() auf Null'?

Warum erhalte ich beim Versuch, Kategorien abzurufen, die Meldung „Schwerwiegender Fehler: Aufruf einer Member-Funktion Prepare() auf Null'?

Mary-Kate Olsen
Freigeben: 2024-10-30 16:49:03
Original
202 Leute haben es durchsucht

Why am I getting a

Schwerwiegender Fehler: Mysteriöser Aufruf einer Null-Member-Funktion

Abfrage:

I' Beim Versuch, eine Liste von Kategorien mit diesem Code abzurufen, stoße ich auf den rätselhaften Fehler „Schwerwiegender Fehler: Aufruf einer Member-Funktion Prepare() auf Null“:

<code class="php">$category = new Category;
$categories = $category->fetch_all();</code>
Nach dem Login kopieren

Kontext:

Die Category-Klasse verfügt über die folgenden Methoden:

<code class="php">class Category {
    public function fetch_all() {
        global $pdo;
        $query = $pdo->prepare("SELECT * FROM dd_cat");
        ...
    }

    public function fetch_data($cat_id) {
        global $pdo;
        $query = $pdo->prepare("SELECT * FROM dd_cat WHERE cat_id = ?");
        ...
    }
}</code>
Nach dem Login kopieren

Ich habe diesen Code in zwei anderen Abschnitten meines Projekts erfolgreich verwendet, aber er bereitet mir hier Probleme.

Antwort:

Das Problem tritt auf, weil die Variable $pdo null ist. Es muss mit einem PDO-Objekt initialisiert werden, bevor die Klassenmethoden aufgerufen werden können. Dies liegt an der Art und Weise, wie die Methoden in der Category-Klasse implementiert wurden.

Um den Fehler zu beheben, fügen Sie den folgenden Code zu Ihrem Skript hinzu:

<code class="php">$pdo = new PDO('mysql:host=localhost;dbname=test', $user, $pass);</code>
Nach dem Login kopieren

Stellen Sie sicher, dass dieser Code platziert wird im globalen Bereich, vor allen Aufrufen der Category-Klassenmethoden.

Das obige ist der detaillierte Inhalt vonWarum erhalte ich beim Versuch, Kategorien abzurufen, die Meldung „Schwerwiegender Fehler: Aufruf einer Member-Funktion Prepare() auf Null'?. 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