ich wollte einmal Wissen wie ich es am besten umsetzte die IP im integer Format in einer PDO-Datenbank zu speichern.
In MySQL gibt es dafür spezifisch die Funktion INET_ATON - Allerdings bezweifel ich das diese Funktion auch für Sqlite, Orcale und andere Datenabnken existiert.
Also wollte ich mit der PHP Funktion ip2long und long2ip arbeiten. Aber hier habe ich das Problem dass ich signed integers herausbekomme und keine unsigned wie es normalerweise sein sollte.
Somit resultiert eine Abrage wie (SELECT ip FROM counter WHERE ip = ‘-123882333’) immer im nirgentwo (ip UNSIGNED INT).
Wie mache ich es also am besten? Ip doch als String speichern?
Wusste gar nicht, dass es nen Standard gibt, um IP-Adressen in INT umzuwandeln. Hätte die INT-Variante denn irgendeinen Vorteil gegenüber Strings (von den paar gesparten Bytes mal abgesehen)?
Kommt natürlich immer auf die Anzahl der Datensätze an. Wenn du’s wirklich unbedingt brauchst, könntest du die Funktion INET_ATON() ja in beforeSave/afterFind im Record (oder auch eingebunden über ein behavior) selber durchführen. Gemäß der MySQL-Referenz macht die nix anderes als: