Tom: Typ von Datenbankfeldern (MySQL) bei PHP Abfrage

Beitrag lesen

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