Ihr PHP-Code löst eine Fehlermeldung aus, die darauf hinweist, dass Sie versuchen, auf die Methode „prepare()“ zuzugreifen eines Objekts, das nicht existiert. Sehen wir uns den bereitgestellten Code genauer an, um die Ursache dieses Fehlers zu ermitteln:
$DBH = new mysqli("host", "test", "123456", "dbname"); function selectInfo($limit, $offset) { $stmt = $DBH->prepare("SELECT * FROM information LIMIT ?,?"); $stmt->bind_param("ii", $limit, $offset); $stmt->execute(); } selectInfo();
Der Fehler hat seinen Ursprung im Bereich der Variablen $DBH. Innerhalb der Funktion selectInfo() versuchen Sie, auf $DBH zuzugreifen, ohne dessen Gültigkeitsbereich anzugeben. Da $DBH nicht innerhalb der Funktion definiert ist, kann nicht direkt darauf zugegriffen werden.
Um dieses Problem zu beheben, haben Sie mehrere Möglichkeiten:
1. Verwenden Sie das globale Schlüsselwort:
function selectInfo($limit, $offset) { global $DBH; $stmt = $DBH->prepare("SELECT * FROM information LIMIT ?,?"); $stmt->bind_param("ii", $limit, $offset); $stmt->execute(); }
2. Übergeben Sie $DBH als Funktionsparameter:
function selectInfo($DBH, $limit, $offset) { $stmt = $DBH->prepare("SELECT * FROM information LIMIT ?,?"); $stmt->bind_param("ii", $limit, $offset); $stmt->execute(); }
3. Erstellen Sie eine Funktion zum Abrufen von $DBH:
function getDBH() { static $DBH = null; if (is_null($DBH)) { $DBH = new mysqli("host", "test", "123456", "dbname"); } return $DBH; } function selectInfo($limit, $offset) { $DBH = getDBH(); $stmt = $DBH->prepare("SELECT * FROM information LIMIT ?,?"); $stmt->bind_param("ii", $limit, $offset); $stmt->execute(); }
Durch die Implementierung einer dieser Optionen legen Sie den richtigen Bereich für $DBH innerhalb der Funktion selectInfo() fest, sodass dieser auf die erforderliche Datenbank zugreifen kann Verbindung.
Das obige ist der detaillierte Inhalt vonWarum löst mein PHP-Code den Fehler „Call to a Member Function Prepare() on a Non-Object' aus und wie kann ich ihn beheben?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!