MYSQL DB Problem

  • Ab sofort steht euch hier im Forum die neue Add-on Verwaltung zur Verfügung – eine zentrale Plattform für alles rund um Erweiterungen und Add-ons für den DSM.

    Damit haben wir einen Ort, an dem Lösungen von Nutzern mit der Community geteilt werden können. Über die Team Funktion können Projekte auch gemeinsam gepflegt werden.

    Was die Add-on Verwaltung kann und wie es funktioniert findet Ihr hier

    Hier geht es zu den Add-ons

Status
Für weitere Antworten geschlossen.

Harry_89

Benutzer
Registriert
07. März 2010
Beiträge
254
Reaktionspunkte
0
Punkte
0
Hallo,

ich habe mir gestern erneut ein kleines Importscript für meine DB geschrieben.
Das Script funktioniert auch ohne Probleme.
Geschrieben mit php.

Nur macht mir die DB selbst ein kleines Problem, genauer gesagt eine Tabelle.

Im Script errechne ich einen bestimmten Wert der in etwa 15-20 Zeichen hat.
Ist nur eine Zahlenfolge mit Komma.


Also habe ich in der DB eine Spalte mit Float angelegt.
Die Daten werden auch in diese Spalte geschrieben.

Nur steht hier nicht der richtige Wert sondern ein Wert mit 1234,567e09
Wenn ich mir den Wert mittels echo ausgeben lasse erhalte ich auch den Wert mit seinen vollen Stellen.

Lokal mit Xampp habe ich diesen Fehler nicht.
Ist die MYSQL Version auf der Syno so veraltet dass sie derart lange Werte nicht zulässt?

Wie kann ich den tatsächlichen Wert in die DB übertragen?

Dank
Harry
 
Warum stehen die "langen" Werte dann in der lokalen Xampp DB richtig drinnen?

Wenn ich die Spalte nun auf varchar ändere mit einer Länge von 200 müsste ich das Problem ja eigentlich umgehen können oder?
Es ist recht egal welchen Typ ich hier verwenden.
In dieses Feld wird nur eine eindeutige Nummer geschrieben damit ich keine Doppelte Werte in die DB schreibe.
 
In der Datenbank stehen eigentlich nur Bits und die Repräsentation der Bits werden einerseits von der physikalische Datenbankengine ( z.B. InnoDB oder MyISAM) und andererseits von dem jeweilig ausgewählten Zeichensatz übernommen. Wie diese Bits dann interpretiert werden und vor allem, wie sie dargestellt werden, dafür sind einzig und alleine die Programmiersprache bzw. die Datenbanktools zuständig (sowohl, was das in die Datenbank Hineinschreiben als auch das Wieder-Lesen angeht.

Zu deinem Problem: am schnellsten (und eindeutigsten) sind Ganzzahlen als Index ... Gleitkommazahlen sind immer ein wenig ungenau (Ausnahme: Datum/Zeitfelder)

Itari
 
In dem Rohfile habe ich einmal das Datum.
Dieses wird so angezeigt "01.01.2012" und dann die restlichen Werte.
Dieses Datum steht aber immer 2 mal in den Rohfiles, einmal für das Interface "Mobil" und einmal für das Interface "Wifi".

Mein Gedankengang derzeit.

Ich lasse das Datum in Unixtime umrechnen addiere die Übertragene Bytesanzahl hinzu.
Anschließend noch eine kleine Abfrage ob die Werte gerade für WIFI oder Mobil berechnet werden und bei Mobil nochmals 10 hinzugezählt.

Es ist zwar sehr unwahrscheinlich am selben Tag auf beiden Interfaces die selbe Byteanzahl zu übertragen aber sicher ist sicher.

So müsste dies ja eigentlich funktionieren?
 
Status
Für weitere Antworten geschlossen.
 

Kaffeautomat

Wenn du das Forum hilfreich findest oder uns unterstützen möchtest, dann gib uns doch einfach einen Kaffee aus.

Als Dankeschön schalten wir deinen Account werbefrei.

:coffee:

Hier gehts zum Kaffeeautomat