Sven Rautenberg: Datenbankabfrage

Beitrag lesen

Moin!

Feld | Typ   | Attribute | Null | Standart | Extra | Aktion  |

plz  |int(11)|           |   Ja | Null     |       |Volltext |

Ist das falsch???

Ja.

int steht doch für zahlen oder??

Postleitzahlen sind keine Zahlen. Eine nicht unbedeutende Anzahl von Menschen im Osten hat Postleitzahlen, die mit einer Null beginnen. Und diese Null würde bei deinem Spaltentyp verschwinden - was die Post sicher nicht so witzig findet.

Deshalb: Postleitzahlen immer als String (5 Zeichen) definieren.

Außerdem ist es der Datenbank vollkommen egal, ob du einer Zahlen-Spalte ihren Wert mit oder ohne Anführungszeichen übergibst. Mit Anführungszeichen ist aber besser.

Und der dritte Punkt: Du escapest deine Strings allesamt NICHT. Das ist sehr schlecht, weil man dir auf diese Weise böse Zeichen reinschreiben kann, die die Datenbank dann in Probleme bringt.

Informiere dich über mysql_escape_string().

- Sven Rautenberg