ip2long(), unsigned und intval()
Hi,
ich bin gerade etwas verwirrt. Warum ergibt das drei verschiedene Ergebnisse: Code:
$ip = gethostbyname('www.example.com'); Ich wollte auf diese Art einen möglichst schnellen Integer-Vergleich in der MySQL-Datenbank realisieren. Soll ich statt unsigned dafür lieber sinteger nehmen und meine Datenbank von INT(10) unsigned auf INT(10) umstellen? Wie halte ich das später kompatibel zu 64 Bit? EDIT: Ok hängt mit 32Bit zusammen. Bleibt nur noch mein Datenbankproblem. |
AW: ip2long(), unsigned und intval()
Also $unsigned resultiert das gleiche Ergebnis wie INET_ATON() in MySQL. Demnach werde ich $unsigned nutzen und in MySQL "INT(10) unsigned" als Spaltenwert hinterlegen.
EDIT: Dadurch hat sich ein kleines anderes Problem ergeben. Und zwar beim Erstellen der MySQL-Abfragen unterscheide ich aus Sicherheitsgründen zwischen Integer mit intval() oder String mit mysql_real_escape_string(). Durch einen kleinen Test bin ich nun dazu gekommen, dass ich neben intval() auch floatval() einsetze, wenn ich weiß, dass die Zahl größer ist, als es intval() erlaubt: Code:
$crc32 = sprintf('%u', crc32('example.com')); // 3069857465 |
Alle Zeitangaben in WEZ +2. Es ist jetzt 19:38:24 Uhr. |
Powered by vBulletin® Version 3.8.3 (Deutsch)
Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.