Heim >Datenbank >MySQL-Tutorial >Warum erhalte ich bei vorbereiteten mysqli-Anweisungen die Meldung „Aufruf einer Mitgliedsfunktion „execute()' für ein Nicht-Objekt'?

Warum erhalte ich bei vorbereiteten mysqli-Anweisungen die Meldung „Aufruf einer Mitgliedsfunktion „execute()' für ein Nicht-Objekt'?

Mary-Kate Olsen
Mary-Kate OlsenOriginal
2024-12-15 01:30:11270Durchsuche

Why Am I Getting

Vorbereitete MySQL-Anweisungen verstehen

Das Vorbereiten von Anweisungen ist eine entscheidende Vorgehensweise zur Vermeidung von SQL-Injection-Schwachstellen. Ein häufiger Fehler, der bei der Verwendung von vorbereiteten MySQL-Anweisungen auftritt, ist jedoch der Empfang der Fehlermeldung „Aufruf einer Mitgliedsfunktion „execute()“ für ein Nicht-Objekt“.

Um dieses Problem zu beheben und vorbereitete MySQL-Anweisungen effektiv zu verwenden, müssen Sie Folgendes tun: Sie müssen Folgendes verstehen:

  1. Parameterbindung: Nach der Vorbereitung einer Anweisung müssen Sie Parameter an die Platzhalter (?) in binden die SQL-Abfrage. Dies geschieht mit der Methode bind_param().
  2. Ausführung: Sobald die Parameter gebunden sind, können Sie die vorbereitete Anweisung mit der Methodeexecute() ausführen.

Hier ist ein Beispiel, um den gesamten Prozess zu veranschaulichen:

<?php

// Connect to MySQL
$mysqli = new mysqli("localhost", "root", "root", "test");

// Prepare statement
$stmt = $mysqli->prepare("INSERT INTO users (name, age) VALUES (?, ?)");

// Bind parameters
$name = 'one';
$age = 1;
$stmt->bind_param('si', $name, $age);

// Execute statement
$stmt->execute();

// Insert another row with different values
$name = 'two';
$age = 2;
$stmt->bind_param('si', $name, $age);
$stmt->execute();

?>

Die Verwendung von MySQL für vorbereitete Anweisungen wird ohnehin dringend empfohlen die empfohlene Methode zum Schutz vor SQL-Injection in PHP. Das obige Beispiel deckt nicht nur die Verbindung, das Einfügen und die Auswahl ab, sondern bietet auch die Fehlerbehandlung.

Das obige ist der detaillierte Inhalt vonWarum erhalte ich bei vorbereiteten mysqli-Anweisungen die Meldung „Aufruf einer Mitgliedsfunktion „execute()' für ein Nicht-Objekt'?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Stellungnahme:
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