Hi,
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.
noch was: durch die Umwandlung nach Integer handelt man sich möglicherweise Probleme bei Fehleingaben ein. Steht in $zahl z.B. "1foo", wird das durch intval() nach 1 umgewandelt, wodurch alle Datensätze, wo feld 1 entspricht, zurückgegeben werden, was für den gemeinen Nutzer nicht unbedingt nachvollziehbar ist. Eine zusätzliche Prüfung wäre hier nötig.
Gruß,
Andreas.