Beim Wechsel von PHP- zu MySQL-Kontext nicht mehr, das stimmt. Was aber ist beim Wechsel von PHP- zu HTML-Kontext (sprich: beim Auslesen der in der Datenbank gespeicherten Werte - genauer gesagt: beim Ausgeben der aus der Datenbank ausgelesenen Werte an den Browser)?
Also bei einer ganz normalen Datenbankabfrage:
$deinschulforum = $db->query_first("SELECT * FROM testtabelle WHERE spalte1='Hallo' ");
liegt meiner meinung keine Gefahr vor. Da kann kein Missbrauch entstehen. Sobald ich aber eine Variable zum Beispiel in die WHERE Bedingung einbaue wird es doch gefährlich? Bsp:
$deinschulforum = $db->query_first("SELECT * FROM testtabelle WHERE spalte1='$hallo' ");
Angenommen ich habe die Variable aus dem Formular bezogen, so wird diese ja über die URL mitübertragen. Dort kann also jeder Hans und Franz den Inhalt der Variable $hallo ändern und somit auch eine ungewollte Abfrage einleiten.
Schützt mich hier mysql_real_escape_string nicht auch?
Nun lese ich ja werte aus der Datenbank aus. Aber so sollte es ja sicher sein, denke ich.