Heim > Artikel > Backend-Entwicklung > Warum erhalte ich einen „Schwerwiegenden Fehler: Aufruf einer Mitgliedsfunktion Prepare() auf Null“, wenn ich PDO in meinem PHP-Code verwende?
Beim Versuch, mit einer Datenbank über a zu interagieren Beim objektorientierten PHP-Ansatz kann es frustrierend sein, auf den „Schwerwiegenden Fehler: Aufruf einer Member-Funktion Prepare() auf Null“ zu stoßen. Dieser Fehler weist darauf hin, dass das PHP-Skript versucht, auf eine Methode (in diesem Fall die Prepare()-Methode) eines Objekts zuzugreifen, das nicht ordnungsgemäß instanziiert oder initialisiert wurde.
Der in der Frage angegebene Fehler deutet darauf hin, dass die Variable $pdo null ist, wenn die Prepare()-Methode der Category-Klasse aufgerufen wird. Dies weist darauf hin, dass das PDO-Objekt, das zur Verbindung mit der Datenbank und zur Interaktion mit ihr verwendet wird, nicht im globalen Bereich erstellt wurde.
Um den Fehler zu beheben, muss das PDO-Objekt verwendet werden muss ordnungsgemäß initialisiert und mit der Datenbank verbunden sein. Der folgende Code kann am Anfang des Skripts außerhalb jeder Funktions- oder Klassendefinition hinzugefügt werden:
<code class="php">$pdo = new PDO('mysql:host=localhost;dbname=test', $user, $pass);</code>
Ersetzen Sie „localhost“ durch den Namen Ihres Datenbankservers, „test“ durch den Datenbanknamen und „$user“ durch die Datenbank Benutzername und $pass mit dem Datenbankpasswort.
Dieser Code erstellt ein neues PDO-Objekt und verbindet es mit der Datenbank. Jetzt steht die Variable $pdo allen Methoden innerhalb der Category-Klasse zur Verfügung und die Methode Prepare() kann aufgerufen werden, ohne dass ein Fehler auftritt.
1. Globaler Gültigkeitsbereich:
Die Variable $pdo sollte im globalen Gültigkeitsbereich deklariert werden, um sicherzustellen, dass sie für alle Methoden innerhalb der Category-Klasse zugänglich ist. Innerhalb einer Klasse definierte Methoden können nur auf Variablen zugreifen, die global deklariert oder als Argumente an die Methode übergeben werden.
2. Fehlerursprung:
Der in der Frage bereitgestellte Code enthält nicht die Zeile, in der der Fehler auftritt. Daher kann nur vermutet werden, dass der Fehler durch den Nullwert von $pdo verursacht wird, wenn die Prepare()-Methode aufgerufen wird.
3. Initialisierung der Klassenmethode:
Die Methoden fetch_all() und fetch_data() in der Category-Klasse basieren beide auf der Variablen $pdo und sollten daher erst aufgerufen werden, nachdem die Variable $pdo im globalen Bereich erfolgreich initialisiert wurde .
Das obige ist der detaillierte Inhalt vonWarum erhalte ich einen „Schwerwiegenden Fehler: Aufruf einer Mitgliedsfunktion Prepare() auf Null“, wenn ich PDO in meinem PHP-Code verwende?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!