Heim > Backend-Entwicklung > PHP-Tutorial > Wie behebt man die Fehler „Aufruf einer Mitgliedsfunktion bind_param() für ein Nicht-Objekt' und „mysqli_fetch_array(): Argument Nr. 1 muss vom Typ mysqli_result sein' in MySQLi?

Wie behebt man die Fehler „Aufruf einer Mitgliedsfunktion bind_param() für ein Nicht-Objekt' und „mysqli_fetch_array(): Argument Nr. 1 muss vom Typ mysqli_result sein' in MySQLi?

Linda Hamilton
Freigeben: 2024-12-21 15:04:14
Original
413 Leute haben es durchsucht

How to Fix

MySQLi-Fehlerausbreitung: Probleme mit mysqli_fetch_array() und Bind_param() lösen

Das Problem:

Fehler wie „Aufruf einer Mitgliedsfunktion bind_param() auf a non-object“ und „mysqli_fetch_array(): Argument #1 muss vom Typ mysqli_result sein“ können auftreten, wenn MySQLi in bestimmten Umgebungen verwendet wird. Dieses Problem ist typischerweise auf eine fehlende Konfiguration für die MySQL-Fehlerberichterstattung in PHP zurückzuführen.

So lösen Sie:

1. Aktivieren Sie die MySQL-Fehlerberichterstattung

Aktivieren Sie zunächst die MySQL-Fehlerberichterstattung in PHP, indem Sie die folgende Zeile hinzufügen, bevor Sie die MySQLi-Verbindung herstellen:

mysqli_report(MYSQLI_REPORT_ERROR | MYSQLI_REPORT_STRICT);
Nach dem Login kopieren

Diese Konfiguration stellt sicher, dass alle MySQL-Fehler behoben werden als PHP-Ausnahmen propagiert, wodurch sie sichtbar und umsetzbar sind.

2. Verwenden Sie vorbereitete Anweisungen

Ersetzen Sie alle expliziten PHP-Variablen in der SQL-Abfrage durch Fragezeichen und führen Sie die Abfrage mithilfe einer vorbereiteten Anweisung aus. Dieser Ansatz hilft, Syntaxfehler und Injektionsschwachstellen zu verhindern.

// Example using MySQLi prepared statements

$mysqli = new mysqli(...) or throw new Exception('Could not connect to DB');
$query = 'SELECT id, description FROM tbl_page_answer_category WHERE cur_own_id = ?';
$stmt = $mysqli->prepare($query);
$stmt->bind_param('i', $cur_id);
$stmt->execute();
$stmt->bind_result($uid, $desc);
Nach dem Login kopieren

Zusätzliche Tipps

  • Stellen Sie sicher, dass die Fehlerausgabe aktiviert ist, entweder auf dem Bildschirm für die Entwicklung Servern oder über Fehlerprotokolle für Live-Server.
  • Untersuchen Sie die Fehlermeldung sorgfältig und identifizieren Sie die tatsächliche Problem.
  • Vertrauen Sie der Fehlermeldung und gehen Sie davon aus, dass die darin gemeldeten Fehler echt sind.
  • Implementieren Sie grundlegende Debugging-Techniken, um die Codeausführung zu überprüfen und die Integrität der Eingabedaten zu überprüfen.

Das obige ist der detaillierte Inhalt vonWie behebt man die Fehler „Aufruf einer Mitgliedsfunktion bind_param() für ein Nicht-Objekt' und „mysqli_fetch_array(): Argument Nr. 1 muss vom Typ mysqli_result sein' in MySQLi?. 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