Klaus Mock: not a valid MySQL result resource ?

Beitrag lesen

Hallo,

$sql="SELECT Pos,Fname,Lname,Team,PPG,RPG,APG,SPG,BPG FROM $tabelle ORDER BY $sort";
$result=mysql_query($sql,$db);

Rufe ich nur index.html auf (es könnte ja sein, dass die Seite so augerufen wird), bekomme ich folgende Fehlermeldung:
Warning: Supplied Argument is not a valid MySQL result resource in index.html on line 62 (das ist der Teil mit while ...).

Wo liegt der Fehler?

In der nicht vorhandenen Fehlerbehandlung.
Wenn $sort nicht oder falsch gesetzt wurde, dann wird ein fehlerhaftes SQL-Statement ausgeführt, was wiederum dazu führt, daß $result nicht den erwartete Inhalt hat (wahrscheinlich so etwas wie undef, ich kenn PHP nicht). Dadurch fliegst Du beim Abfragen der Datensätze auf die Nase.

Mein Vorschlag: überprüfe den Inhalt des Parameters 'sort' peinlich genau, bevor du das Statement erzeugst. Eventuell befüllst Du $sort mit einem Vorgabewert, falls der Parameter nicht übergeben wurde.

Außerdem solltest Du nur von Dir definierte Werte erleauben, da die ungeprüfte Übernahme solcher Parameter durchaus zu einem Sicherheitsloch werden können.

Unbedingt solltest Du jedoich überprüfen, ob mysql_query erfolgreich war.

Grüße
  Klaus