Zunächst erstmal ein Hallo an alle hier im Forum. Ich bin ganz neu hier und habe mich als User registriert, da ich von PHP fast noch nichts weis und mir deshalb von Euch Spezialisten hilfreiche Tipps erhoffe. Eigentlich komme ich mehr aus der Delphi-Programmierung, aber neue Aufgaben erfordern auch mal neue Wege zur Lösung.
Es geht um folgendes Problem:
Wir erhalten aus ständigen Temperaturüberwachungen binäre Messwertdateien, deren Struktur auch bekannt ist. Diese Messwerte sollen dann in eine Datenbank geschrieben werden.
Das Auslesen der Binärdatei erfolgt mit fread und das 'Erzeugen' der lesbaren Temperaturwerte (Typ double) mit der unpack-Funktion. Über var_dump wird mir auch der richtige Wert angezeigt.
Will ich dann diesen Wert in die Datenbank schreiben (Feld 'T1' vom Typ double), so steht anschließend immer nur eine 0.000 in der Tabelle 'Temperaturwerte' drin. Erzeuge ich jedoch den Wert der Variable direkt, z.B. $t1='1.2345',
dann wird der richtige Wert der Variablen in die DB eingetragen. Wo wäre dabei der Unterschied und wo mache ich hier eine Fehler ?
Hier kurz ein einfacher Code.
Der MySQL-Server läuft auf einer QNAP-NAS. PHP-Version 5.6.36
Vielen Dank im voraus.
Es geht um folgendes Problem:
Wir erhalten aus ständigen Temperaturüberwachungen binäre Messwertdateien, deren Struktur auch bekannt ist. Diese Messwerte sollen dann in eine Datenbank geschrieben werden.
Das Auslesen der Binärdatei erfolgt mit fread und das 'Erzeugen' der lesbaren Temperaturwerte (Typ double) mit der unpack-Funktion. Über var_dump wird mir auch der richtige Wert angezeigt.
Will ich dann diesen Wert in die Datenbank schreiben (Feld 'T1' vom Typ double), so steht anschließend immer nur eine 0.000 in der Tabelle 'Temperaturwerte' drin. Erzeuge ich jedoch den Wert der Variable direkt, z.B. $t1='1.2345',
dann wird der richtige Wert der Variablen in die DB eingetragen. Wo wäre dabei der Unterschied und wo mache ich hier eine Fehler ?
Hier kurz ein einfacher Code.
PHP-Code:
$bytes=fread($file,8); //T1
$t1=unpack("d",$bytes);
$query = "INSERT INTO Temperaturwerte (T1) VALUES ('$t1')";
$result = mysql_query($query,$connection) or die ("Ungültige Anweisung ");
Vielen Dank im voraus.
Kommentar