Vinzenz Mai: Per Get eine mysql_query

Beitrag lesen

Hallo,

$conID = mysql_connect( $db_host, $db_user, $db_pass ) or die( "Die Datenbank konnte nicht erreicht werden!" );

die() ist keine sinnvolle Fehlerbehandlung.

if ($conID)
{
    mysql_select_db( $db_name, $conID );
}

Ist danach noch eine if-Anweisung sinnvoll?

$id = $_GET['id'];

Dieses oft gesehene Umkopieren ist überflüssig, es schadet eher.

$abfrageergebnis = mysql_query('SELECT titel FROM kalender WHERE ID = $id', $conID );

a) solltest Du den Kontextwechsel beachten. Derzeit bist Du anfällig für SQL-Injection. Hier wäre intval() sinnvoll.

Beispiel: Benutzer gibt "1 OR 1 = 1" ein (ohne Anführungszeichen.
             Ihm werden alle Datensätze angezeigt.

b) prüfst Du an dieser Stelle nicht, ob mysql_query erfolgreich ist.
   Du gehst einfach vom Gut-Fall aus. Das ist keine gute Idee

c) könntest Du im Fehlerfall mysql_error() befragen, was MySQL zu beanstanden
   hatte.

d) wäre es eine gute Idee, das SQL-Statement zuerst in einer Variablen
   zusammenzustellen, um das Statement zu Debug-Zwecken ausgeben zu können.

Und zum guten Schluss:
Heutzutage noch Skripte mit den veralteten und wenig leistungsfähigen mysql_*-Funktionen zu schreiben, ist nicht mehr sinnvoll. Verwende die empfohlene und leistungsfähigere Erweiterung mysqli.

Freundliche Grüße

Vinzenz