Die Funktion „mysqli_real_escape_string()“ wurde entwickelt, um Sonderzeichen in einem String zu verhindern SQL-Injection-Angriffe. Es gibt jedoch eine bestimmte Parameteranforderung, die den Fehler „mysqli_real_escape_string() erwartet genau 2 Parameter, 1 gegeben“ verursachen kann.
Problemanalyse:
Der bereitgestellte Code prüft die PHP-Version und versucht, „mysqli_real_escape_string()“ entsprechend zu verwenden. Der Funktionsaufruf enthält jedoch nur die zu maskierende Zeichenfolge und es fehlt der erste erforderliche Parameter: der MySQL-Link.
Erklärung der Dokumentation:
Laut der offiziellen Dokumentation „mysqli_real_escape_string()“ erfordert zwei Parameter:
Lösung:
Um den Fehler zu beheben, sollte der Code beim Aufruf der Funktion „mysqli_real_escape_string()“ beide Parameter enthalten. Hier ist eine aktualisierte Version:
if (phpversion() >= '4.3.0') { $string = mysqli_real_escape_string($link, $string); } else { $string = mysqli_escape_string($link, $string); }
Indem sichergestellt wird, dass der MySQL-Link als erster Parameter bereitgestellt wird, maskiert die Funktion „mysqli_real_escape_string()“ die Eingabezeichenfolge ordnungsgemäß und verhindert SQL-Injection-Schwachstellen.
Das obige ist der detaillierte Inhalt vonWarum wirft „mysqli_real_escape_string()' „erwartet genau 2 Parameter, 1 gegeben'?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!