Sebastian Jurk: Suche Aufstellung welche Mysql-Datentypen als welcher Datentyp a

n php weitergegeben wird.

Hallo,

ich suche eine Aufstellung die mir zeigt welche Mysql-Datentypen durch ein Select aus php heraus als welche Datentypen in php ankommen. Beispielsweise scheinen alle ints, decimal usw als String geliefert zu werden und nicht als Zahlen oder float wie ich erst angenommen habe. Weshalb mich auch die vielen Fragen im Netz wundern wie man Decimal als String aus mysql abrufen könne.

Gibts da eine Liste? Ich hab leider nichts gefunden, vielleicht fallen mir aber auch nur die passenden Keywords nicht ein.

Danke!
Sebastian

  1. Hello,

    ich suche eine Aufstellung die mir zeigt welche Mysql-Datentypen durch ein Select aus php heraus als welche Datentypen in php ankommen.

    Um die Spaltentypen eindeutig zu bestimmen, müsstest Du das Infomation Schema von MySql abfragen. Per SQL kommen im Prinzip alle Daten in ihrer Stringdarstellung an.

    Liebe Grüße aus dem schönen Oberharz

    Tom vom Berg

    --
     ☻_
    /▌
    / \ Nur selber lernen macht schlau
    http://restaurant-zur-kleinen-kapelle.de
    1. Dann heißt das dass man Decimalzahlen aus Mysql nicht erst per concat oder cast bzw strval in php in einen string umwandeln muss um genaue Berechnungen mit bcmath machen zu können. Oder?

      Seltsam dass es dann trotzdem im netz Fragen und Anweisungen gibt wie man decimal per cast in char usw umwandelt. Dann kann ich mir das jetzt ja auch sparen und muss nur drauf achten dass die Zahlen auch Strings bleiben.

      Grüße!
      Sebastian

      1. Hello,

        Dann heißt das dass man Decimalzahlen aus Mysql nicht erst per concat oder cast bzw strval in php in einen string umwandeln muss um genaue Berechnungen mit bcmath machen zu können. Oder?

        MMn ist das so. Zumindest, wenn Du mit mysql_fetch_assoc() die Daten aus dem Resultset holst, bekommst Du Strings.

        Aber lass Dir soch mal so ein Array (eine Zeile des Resultsets) per var_dump() anzeigen. Dann wweißt Du, welche Informationen zur Verfügung stehen, außer dem Datenwert.

        Die Abfrage des Information-Schema ist übrigens relativ schmerzfrei. Es gibt dann eine Abfragevariante, die die Spaltentypen in Kurzform anzeigt; ich weiß sie jetzt nicht auswendig. Aber mit dieser Information könntest Du dann in PHP im Prinzip auch eine diskrete Typzuweisung durchführen. Für bcmath willst Du das ja aber gar nicht...

        Liebe Grüße aus dem schönen Oberharz

        Tom vom Berg

        --
         ☻_
        /▌
        / \ Nur selber lernen macht schlau
        http://restaurant-zur-kleinen-kapelle.de
        1. Tach!

          Aber lass Dir soch mal so ein Array (eine Zeile des Resultsets) per var_dump() anzeigen. Dann wweißt Du, welche Informationen zur Verfügung stehen, außer dem Datenwert.
          Die Abfrage des Information-Schema ist übrigens relativ schmerzfrei.

          Und relativ sinnfrei. Da drin stehen nur die Feldtypen, nicht aber Informationen zum aktuellen Resultset, in dem ja Formeln und andere Schweinereien enthalten sein können. Für die Felder des Resultsets gibt es Funktionen in der API, die die Metainformationen liefern. Die Namen der PHP-Pendants dazu beginnen mit: mysql_field_* und mysqli_fetch_field*.

          dedlfix.