So fügen Sie Variablenwerte in die pdo-Abfrage ein

7

Ich möchte meinen aktuellen Code aktualisieren, der ständig mit PDO sql injiziert wird.

Zur Zeit verwende ich eine Variable in einer PDO-Abfrage.

Wenn ich zwei Argumente wie dieses habe

%Vor%

Und ich habe eine Abfrage wie diese

%Vor%

PDO meldet einen Fehler in der letzten Zeile der Abfrage ORDER BY Wenn ich diese Zeile mit ersetze   "ORDER BY Date DESC LIMIT3,3"); alles funktioniert.

So, wie man Variablenwerte in PDO :: query hinzufügt?

Aktualisiert: Danke an die Antwort unten Ich habe meinen Code wie folgt aktualisiert

%Vor%

Aber Fehler ist aufgetreten:

  

Schwerwiegender Fehler: Nicht abgefangene Ausnahme 'PDOException' mit Nachricht   'SQLSTATE [42000]: Syntaxfehler oder Zugriffsverletzung: 1064 Sie haben ein   Fehler in Ihrer SQL-Syntax; Überprüfen Sie das Handbuch, das Ihrem entspricht   MySQL-Server-Version für die richtige Syntax in der Nähe von "-3", "3" bei   Zeile 1 'in /pdo/test.php:42 Stack-Trace: # 0   /pdo/test.php(42): PDOStatement- & gt; execute () # 1 {main} geworfen   / pdo / test ..

Zweites Update Geändert von PARAM_STR zu PARAM_INT wie folgt

%Vor%

Alles funktioniert.

    
BobRock 30.03.2012, 19:38
quelle

1 Antwort

21

Sie möchten vorbereitete Anweisungen und Abfrageparameter wie folgt verwenden:

%Vor%

Das direkte Verwenden von Variablen in Ihrer Abfrage schützt Sie nicht vor SQL-Injektionen, selbst wenn Sie PDO verwenden. Parameter sind der einzige gute Weg, sie zu verhindern.

    
Pierre-Olivier 30.03.2012, 19:45
quelle

Tags und Links