PHP-Skript, MySQLi.class oder Cronjob führt etwas falsch aus

    • Offizieller Beitrag

    Hallo,


    ich habe ein PHP-Skript gebaut, welches ein paar Werte berechnet und sie in der Datenbank entsprechend aktualisiert, also updated.


    Das funktioniert auch einwandfrei und ohne Probleme. Auch die Fließkommazahlen werden korrekt ausgerechnet.


    Aber sobald ich es in einen Cronjob, wie diesen hier packe...

    Code
    $ cat /etc/cron.d/berechnungPATH=/usr/local/bin:/usr/bin:/bin18 18 * * *     web12 php /var/www/berechnung.php# ^ ^ ^ ^ ^# | | | | |# | | | | |___ Weekday (0-7, Sunday is mostly 0)# | | | |_____ Month (1-12)# | | |_______ Day (1-31)# | |_________ Hour (0-23)# |___________ Minute (0-59)


    ...funktioniert es nicht mehr. Es zieht z.B. anstatts 0,54 einfach so viel ab, dass am Schluss immer ein Integer Wert, also z.B. 16.00 in der Datenbank erscheint. Das Array erhält aber nach vielen Tests und beim Aufruf über eine Webseite immer die korrekten Werte...


    Ich hatte mir mal eine Ausgabe der Arrays, die zu aktualisieren sind, per Mail zukommen lassen, da ich sonst ja keinen Inhalt bzw. keine Ausgabe vom Cronjob sehe:


    Jetzt ist eben die Frage... Warum erhalte ich hier im Array ein Komma im Wert und überall anders nicht? Das muss für Datenbank nämlich ein Punkt sein...


    Wenn ich es auf der Shell oder im Browser aufrufe, gibt er mir das Array korrekt zurück:


    Um es aktuell überhaupt mal zum Laufen zu kriegen, ersetze ich in den Arrays jetzt einfach alle Komma-Zeichen durch einen Punkt:

    Code
    $aData['wert'] = str_replace(",", ".", $aDate['wert']);


    Die mysqli.class.php sieht wie folgt aus:

    Viele Grüße,
    Sebbo

    ---

    DevOps Engineer <3