MySQL Abfrage basierend auf Benutzereingaben
Ich habe eine DB-Tabelle. Ich möchte eine text-Eingabe, wo der Benutzer eingeben können, die "uid" und die Abfrage der Zeile, die mit uid.
Also sagen wir mal ich habe so etwas wie dieses:
$query = "SELECT name,age FROM people WHERE uid = '2' LIMIT 0,1";
$result = mysql_query($query);
$res = mysql_fetch_assoc($result);
echo $res["age"];
wie würde ich es ändern, dass die Abfrage so etwas wie..
SELECT name, age
FROM people
WHERE uid = $_POST['blahblah'] LIMIT 0,1
Dank im Voraus für Eure Hilfe!
Du musst angemeldet sein, um einen Kommentar abzugeben.
Speichern von SQL-injection-Angriff nutzen:
In der Realität...
Seine ratsam, escape-Zeichen in die variable, die aus Gründen der Sicherheit. Werfen Sie einen Blick auf dieses Dokument, für die einige der Gründe:
http://en.wikipedia.org/wiki/SQL_injection
Es gibt so viele Möglichkeiten, das gleiche zu tun
Aber zuerst entkommen, und speichern es in eine variable zu
Und dann gibt Es
Ersten:
Wie @Mett Lo erwähnt:
Zweite:
Dritte:
und wenn blahblah ist ein int-Wert in db-Tabelle, die dann Vierte:
Können Sie die sprintf-Funktion, um die Abfrage zu erstellen.
Den rest wird die gleiche sein. Es wird dringend empfohlen, dass Sie die Flucht der $_POST-Daten vor dem ausführen der Abfrage, um zu verhindern, dass SQL-Attacken. Können Sie re Satz die Abfrage wie folgt.