PHP / MySQL - Verwenden und Üben von Strings am besten [duplizieren]

8

Was ist der beste Weg, Strings beim Abfragen zu umgehen? mysql_real_escape_string () scheint gut, aber ich weiß nicht genau, wie man es richtig benutzt.

Führt dieser Code die Aufgabe richtig aus?

%Vor%

BEARBEITEN:

Jetzt habe ich diesen Code:

%Vor%

Aber ich bekomme diesen Fehler: Sie haben einen Fehler in Ihrer SQL-Syntax. Überprüfen Sie das Handbuch, das Ihrer MySQL-Serverversion entspricht, für die richtige Syntax, die Sie in der Nähe von "!" #! # ^! "#!" #! "# ^ '' '' '' in Zeile 1 verwenden können

Wenn der Benutzer Folgendes eingibt: '**! "#! # ^!" #! "* #!" # ^' '' '

    
Oskar Persson 13.07.2012, 21:32
quelle

2 Antworten

6

Der beste Weg ist, die Zeichenfolge überhaupt nicht zu verlassen, sondern stattdessen eine parametrisierte Abfrage zu verwenden, die dies hinter den Kulissen erledigt.

    
Kylotan 13.07.2012, 21:35
quelle
6

So funktioniert mysql_real_escape_string funktioniert, aber Sie müssen:

  • Fügen Sie Anführungszeichen um den Wert hinzu.
  • Verwenden Sie das Ergebnis $newStr , nicht den ursprünglichen Wert $str .
  • Ändern Sie den Tabellennamen in einen Namen, der kein reserviertes Schlüsselwort ist.
  • Fügen Sie Klammern um die Spaltenliste hinzu.

Versuchen Sie Folgendes:

%Vor%

Ich schlage auch vor, dass Sie das Ergebnis von mysql_query($query) überprüfen und wenn ein Fehler vorliegt, können Sie die Fehlermeldung überprüfen:

%Vor%

Sie sollten auch eine der neueren Schnittstellen zu MySQL in Erwägung ziehen. Die alten Funktionen von mysql_* sind veraltet und sollten nicht in neuem Code verwendet werden.

    
Mark Byers 13.07.2012 21:35
quelle

Tags und Links