echo $begrüßung;
$query_Recordset3 = "SELECT * FROM Download WHERE PNr=".$_GET["selectedNr"] ;
Aha. Und wenn ich Deinem Skript nun "0; DROP TABLE Download;" als GET-Parameter "selectedNr" mitgebe?
Dann beschwert sich mysql_query() nur über die Syntax. Pro mysql_query()-Aufruf kann nur genau ein SQL-Statement abgearbeitet werden. Dein Beispiel einer SQL-Injection funktioniert so nicht.
Merke: "ALL INPUT IS EVIL!" - behandle Benutzereingaben IMMER mit Vorsicht und maskiere Variablen IMMER kontextsensitiv:
$query_Recordset3 = "SELECT * FROM Download WHERE PNr='".mysql_real_escape_string($_GET['selectedNr'])."'";
Auch wenn das DROP-Beispiel nicht funktioniert ist die Behandlung von Eingabewerten gemäß Kontext vorzunehmen, denn es gibt noch genügend Möglichkeiten, wie man ein einzelnes SQL-Statement per SQL-Injection etwas anderes ausführen lassen kann als vom Programmierer vorgesehen. Bestenfalls führt es nur zu einem Syntax-Error:
SELECT * FROM table WHERE name='O'Brien' <- nach dem O' hört der String auf.
echo "$verabschiedung $name";