Auge: Neuer Artikel: Kontextwechsel erkennen und behandeln

Beitrag lesen

Hallo

Im Abschnitt "Zahlen im (My)SQL-Statement"

Kann der Ausdruck:
[code=sql]
$sql = sprintf('SELECT feldliste FROM tabelle WHERE feld=%s', intval($zahl));
[/code]
für integer Werte durch:
[code=sql]
$sql = sprintf('SELECT feldliste FROM tabelle WHERE feld=%d', $zahl);
[/code]
vereinfacht werden.

Für die $zahl, die gesichert innerhalb des Skripts erstellt wird, mag diese Vereinfachung stimmen, aber wenn $zahl aus einer Eingabe (z.B. per POST oder GET übergeben) stammt, darf man ihr nicht trauen und dann ist genau die Behandlung, wie sie dedlfix angibt, richtig. Da eine Integerzahl, die mit intval behandelt wird, eine Integerzahl bleibt und Variablen anderen Typs in ein Integer umgewandelt werden (im Zweifel zu 0) sollte der immer gleichen Schreibweise wegen, intval grundsätzlich drin bleiben.

Das gleiche gilt für "floats" mit entsprechender Formatanweisung "%f"

Ja, das tut es.

Tschö, Auge

--
Verschiedene Glocken läuteten in der Stadt, und jede von ihnen vertrat eine ganz persönliche Meinung darüber, wann es Mitternacht war.
Terry Pratchett, "Wachen! Wachen!"
Veranstaltungsdatenbank Vdb 0.3