Hello,
Generell sind bei den Ergebnismengen von SQL-Datenbanken alle Werte vom Typ String. Sie werden schließlich auch textlich dargestellt, und nicht im Binärmodus. Das bedeutet, dass die Zahl Fünfundsechzig als '65' geliefert wird, und nicht als 'A' oder gar 41h.
Wenn Du die Spaltentypen einer Tabelle, die sich von Zeile zu Zeile bei einem intakten DBMS nicht ändern sollten, wissen musst, dann benutze Abfragen wie
Show columns from $tablename
Display columns from $tablename
oder ähnliche Abfragen (Je nach DBMS)
Wenn Du ganz pedantisch sein willst, müsstest Du diese Abfrage bei jedem Request tätigen, und zwar als Common-Request mit dem eigentlichen. Bei einem DBMS, das keine COMMON-Requests kann, müsstest Du die bezogenen Tabellen für die Typen-Abfrage und das eigentliche Query sogar gegen Veränderung sperren, und die beiden Statements damit binden.
Sinnvoller sind Transformations-Plausibilitäts-Prüfungen.
Nichts anderes macht ja das DBMS beim _Eintragen_ der Werte ind die Tabelle. Es prüft, ob ein Wert, der in eine als ZAHL gekennueichnete Spalte eingetragen werden soll, auch das Aussehen einer Zahl (aber immer noch textlich dargestellt) hat.
Beispielabfrage auf
Feldname gettype() Wert
Feldname: ID_ADRESSE string 1
Feldname: TABLENAME string 1
Feldname: ID_PARENT string 3
Feldname: LASTCLICK string 20050604011516
Feldname: FIRSTCLICK string 20030102000000
Feldname: CAT string 01.
Feldname: VORNAME string Hans
Feldname: NACHNAME string Dampf
Feldname: STATUS string
Feldname: IDX string
Feldname: IP string 192.168.101.99
Feldname: ID_FARBE string 1
Feldname: NUMI string 1
Feldname: DATUM string 2004-01-02 00:00:00
Feldname: PREIS string 99999999.99
Feldname: MARK string
bei einer Tabelle in einer MySQL-Datenbank
Harzliche Grüße vom Berg
http://www.annerschbarrich.de
Tom
Fortschritt entsteht nur durch die Auseinandersetzung der Kreativen
Nur selber lernen macht schlau
