Hi.
Habe ein "kleines" und wahrscheinlich untypisches PHP-Problem, aber vielleicht hat ja jemand von euch schon mal was ähnliches gelöst.
Ich möchte vor dem Ablegen von Daten in der Datenbank prüfen, ob diese auch dem erforderlichen Datentyp entsprechen.
Aus diesem Grund muss ich also herausfinden, welchen Datentyp der übergebene Wert besitzt, nur leider ist das - im vergleich zu anderen Sprachen - gar nicht so einfach.
Hatte mehrere Ansätze, die aber alle nicht so 100% "sauber" waren:
1) prüfen mit den is_*()-Funktionen:
Funktioniert super, allerdings wenn die Werte einmal über $_POST kommen sollten, stehen intern auch alle übergebenen Integer auf String
2) mittels settype() umwandeln:
Naja, hier waren die Ergebnisse auch sehr überraschend, da die Funktion nämlich Strings auch in Int umwandelt ?!?
3) mittels preg_match() nach Zahllen suchen:
Die einzige Methode die vernünftig funktioniert, allerdings meiner Meinung nach für mein Problem einen kleinen "Overkill" bedeutet.
Also nochmals meine Frage:
Hat jemand von euch etwas änliches schon einmal gelöst? Bin auch für "Denkanstösse" sehr dankbar.
Gruß
Chris
Habe ein "kleines" und wahrscheinlich untypisches PHP-Problem, aber vielleicht hat ja jemand von euch schon mal was ähnliches gelöst.
Ich möchte vor dem Ablegen von Daten in der Datenbank prüfen, ob diese auch dem erforderlichen Datentyp entsprechen.
Aus diesem Grund muss ich also herausfinden, welchen Datentyp der übergebene Wert besitzt, nur leider ist das - im vergleich zu anderen Sprachen - gar nicht so einfach.
Hatte mehrere Ansätze, die aber alle nicht so 100% "sauber" waren:
1) prüfen mit den is_*()-Funktionen:
Funktioniert super, allerdings wenn die Werte einmal über $_POST kommen sollten, stehen intern auch alle übergebenen Integer auf String

2) mittels settype() umwandeln:
Naja, hier waren die Ergebnisse auch sehr überraschend, da die Funktion nämlich Strings auch in Int umwandelt ?!?
3) mittels preg_match() nach Zahllen suchen:
Die einzige Methode die vernünftig funktioniert, allerdings meiner Meinung nach für mein Problem einen kleinen "Overkill" bedeutet.
Also nochmals meine Frage:
Hat jemand von euch etwas änliches schon einmal gelöst? Bin auch für "Denkanstösse" sehr dankbar.
Gruß
Chris
Kommentar