Wenn Sie PHP für die Entwicklung von Webanwendungen verwenden, müssen Sie häufig eine Datenbank verwenden. Bei der Verwendung einer Datenbank kommt es sehr häufig zu Fehlermeldungen. Unter ihnen ist PHP Fatal error: Call to a member function fetch() ein relativ häufiger Fehler, der auftritt, wenn PDO zum Abfragen der Datenbank verwendet wird. Was verursacht diesen Fehler und wie kann er behoben werden? In diesem Artikel wird es Ihnen ausführlich erklärt.
1. Fehlerursachen
Bei der Website-Entwicklung ist es oft notwendig, Daten aus der Datenbank abzurufen und zu verarbeiten. PDO ist eine von PHP bereitgestellte Erweiterung, um PHP mit verschiedenen Datenbanken zu verbinden. Wenn Sie PDO zum Betreiben der Datenbank verwenden und die SQL-Anweisung nicht korrekt geschrieben oder das PDO-Objekt nicht korrekt konfiguriert ist, kann ein Fehler beim Aufruf einer Mitgliedsfunktion fetch() auftreten.
Zum Beispiel der folgende Code:
$sql = "SELECT * FROM `staff` WHERE `age` > 18"; $res = $pdo->prepare($sql); $res->execute(); $data = $res->fetch(PDO::FETCH_ASSOC);
Wenn in der SQL-Abfrageanweisung ein Fehler auftritt oder das PDO-Objekt nicht richtig konfiguriert ist, kann der obige Fehler in der fetch()-Methode auftreten.
2. Fehlerlösungen
Wenn ein Fehler auftritt, muss er behoben werden. Hier sind einige gängige Lösungen:
1. Überprüfen Sie, ob die SQL-Anweisung korrekt ist.
Die SQL-Anweisung ist der Schlüssel für den Zugriff auf die Datenbank. Das korrekte Schreiben von SQL-Anweisungen ist wichtig, um Fehler zu vermeiden. Beim Schreiben von SQL-Anweisungen müssen Sie auf folgende Aspekte achten:
(1) Es muss sichergestellt werden, dass die Schlüsselwörter, Tabellennamen, Feldnamen usw. der SQL-Anweisung in der richtigen Groß- und Kleinschreibung angegeben sind
(2 ) Es muss sichergestellt werden, dass die bedingten Ausdrücke der SQL-Anweisung korrekt sind ;
(3) Es muss sichergestellt werden, dass die Syntax der SQL-Anweisung korrekt ist.
2. Bestätigen Sie, ob die Datenbankverbindung erfolgreich ist
Bei Verwendung von PDO müssen Sie zunächst eine Verbindung zur Datenbank über die Methode PDO::construct() herstellen. Wenn die Datenbankverbindung fehlschlägt, erfolgt ein Aufruf einer Mitgliedsfunktion fetch(). Es wird ein Fehler auftreten. Daher muss festgestellt werden, ob die Datenverbindung erfolgreich ist.
try { $pdo = new PDO('mysql:host=localhost;dbname=test;charset=utf8', 'root', 'password'); } catch (PDOException $e) { die ("Error!: " . $e->getMessage() . "<br/>"); }
3. Bestätigen Sie, ob das PDO-Objekt korrekt ist
Nachdem Sie PDO zum Herstellen einer Verbindung zur Datenbank verwendet haben, müssen Sie ein PDOStatement-Objekt abrufen. Dieses Objekt stellt eine vorbereitete Anweisung dar und kann mehrmals ausgeführt werden. Wenn der Abruf des PDO-Objekts fehlschlägt, tritt ein Fehler beim Aufruf einer Mitgliedsfunktion fetch() auf. Bei der Verwendung von PDO-Objekten müssen Sie die folgenden Aspekte bestätigen:
(1) Ob die bei der Instanziierung des PDO-Objekts verwendete Datenquelle und der verwendete Zeichensatz korrekt sind;
(2) ob das PDOStatement-Objekt vorhanden ist; Das PDOStatement-Objekt führt die Abfrageanweisung aus. Sind Sie bereit für den Erfolg?
$sql = "SELECT * FROM `staff` WHERE `age` > 18"; $res = $pdo->prepare($sql); if(!$res) { echo " PDO::errorInfo(): "; print_r($pdo->errorInfo()); } $res->execute(); $data = $res->fetch(PDO::FETCH_ASSOC);
$sql = "SELECT * FROM `staff` WHERE `age` > 100"; $res = $pdo->prepare($sql); $res->execute(); $data = $res->fetch(PDO::FETCH_ASSOC); if(!$data){ echo "没有结果"; exit; }
try { $sql = "SELECT * FORM `tableName"; $res = $pdo->prepare($sql); $res->execute(); $data = $res->fetch(PDO::FETCH_ASSOC); } catch (PDOException $e) { echo $e->getMessage(); exit; }
echo $sql;
Das obige ist der detaillierte Inhalt vonLösung für PHP Schwerwiegender Fehler: Aufruf einer Mitgliedsfunktion fetch(). Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!