Sven Rautenberg: mysql textfeld als 'text' deklariert?

Beitrag lesen

Moin!

ich hab den fehler... und zwar: wenn ich die funktion quote_smart() weg lasse und direkt '%s' schreibe dann trägt er es richtig ein.

is_numeric kommt wohl mit dem wert nicht klar und lässt die '' weg. ohne die '' gehts nicht.

Deine quote_smart-Funktion ist sowieso grob fehlerhaft.

In SQL dürfen auch Zahlenwerte in Stringbegrenzern stehen. Sie sollten es sogar, denn es bringt absolut keine Vorteile, es nicht zu tun. Der SQL-Befehl ist sowieso ein String, jede Zahl darin befindet sich in Stringdarstellung und muß von der Datenbank sowieso ggf. geparst und in eine passendere interne Darstellung gebracht werden (Integer, Float, etc.).

Deshalb:
Faustregel 1: Werte immer in Anführungszeichen packen.
Faustregel 2: Werte immer escapen (mit mysql_real_escape_string() - nicht mehr, aber auch nicht weniger).

Wenn du deine quote_smart-Funktion jetzt einfach wegläßt, fehlt dir das Escaping - und das wäre richtig böse!

- Sven Rautenberg

--
"Love your nation - respect the others."