Hi,
Kann der Ausdruck:
$sql = sprintf('SELECT feldliste FROM tabelle WHERE feld=%s', intval($zahl));
> > für integer Werte durch:
> > ~~~
> > $sql = sprintf('SELECT feldliste FROM tabelle WHERE feld=%d', $zahl);
> >
vereinfacht werden.
Du hast prinzipiell Recht. Aber: Auf Tastaturen hierzulande sind 's' und 'd' so dicht nebeneinander, dass es leicht fällt, da mal einen Fehler zu machen, der dann zu einer Lücke wird. Wenn man sich dagegen angewöhnt, explizit intval() zu nutzen, ist man vor einem derartigen Fehler geschützt. Zudem sieht man beim Drüberlesen schneller, dass der Code an der Stelle sicher ist.
beide Vorgehen haben auf 32-Bit-Systemen das Problem eines zu geringen Wertebereichs. Daher würde ich an dieser Stelle
$sql = sprintf("SELECT feldliste FROM tabelle WHERE feld='%s'", mysql_real_escape_string($zahl));
favorisieren.
Gruß,
Andreas.