Heim > Backend-Entwicklung > PHP-Tutorial > Warum löst meine vorbereitete MySQLi-Anweisung den Fehler „Aufruf einer Mitgliedsfunktion „execute()' für ein Nicht-Objekt' aus?

Warum löst meine vorbereitete MySQLi-Anweisung den Fehler „Aufruf einer Mitgliedsfunktion „execute()' für ein Nicht-Objekt' aus?

Barbara Streisand
Freigeben: 2024-12-09 18:07:15
Original
170 Leute haben es durchsucht

Why Does My MySQLi Prepared Statement Throw a

Vorbereitete MySQL-Anweisungen verstehen

Bei der Verwendung vorbereiteter Anweisungen mit MySQL ist es wichtig, bestimmte Richtlinien einzuhalten, um die ordnungsgemäße Funktionalität sicherzustellen.

Behebung des Fehlers

Im bereitgestellten Code ist die Fehler:

Fatal error: Call to a member function execute() on a non-object in ...
Nach dem Login kopieren

legt nahe, dass die vorbereitete Anweisung vor der Ausführung nicht korrekt an Variablen gebunden ist. So beheben Sie dieses Problem:

// Bind parameters to variables
$name = 'one';
$age = 1;
$stmt->bind_param('si', $name, $age);
Nach dem Login kopieren

MySQL für vorbereitete Anweisungen verwenden

MySQL ist eine geeignete Wahl für die Verwendung vorbereiteter Anweisungen in PHP. Es handelt sich um eine etablierte und gut dokumentierte Datenbankschnittstelle.

Vollständiges Beispiel mit vorbereiteten Anweisungen

<?php

// Establish database connection
$mysqli = new mysqli('localhost', 'root', 'root', 'test');

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

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

// Insert data with prepared statement
$stmt->execute();

// Check for errors
if ($mysqli->error) {
    echo 'Error: ' . $mysqli->error;
} else {
    // Data inserted successfully
}

// Prepare select statement
$stmt = $mysqli->prepare('SELECT * FROM users WHERE name = ?');

// Bind variable
$name = 'one';
$stmt->bind_param('s', $name);

// Execute select query
$stmt->execute();

// Fetch results
$result = $stmt->get_result();
while ($row = $result->fetch_assoc()) {
    echo $row['id'] . ' - ' . $row['name'] . ' - ' . $row['age'] . '<br>';
}

// Close statement and connection
$stmt->close();
$mysqli->close();

?>
Nach dem Login kopieren

Dieses umfassende Beispiel zeigt den gesamten Prozess vom Herstellen einer Verbindung bis zum Einfügen und Auswählen von Daten mit vorbereiteten Anweisungen. inklusive Fehlerbehandlung.

Das obige ist der detaillierte Inhalt vonWarum löst meine vorbereitete MySQLi-Anweisung den Fehler „Aufruf einer Mitgliedsfunktion „execute()' für ein Nicht-Objekt' aus?. 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