2017-05-13 2 views
0

Ich verwende PHP, um eine XML-Datei zu analysieren und in 2 MySQL-Tabellen (die Tabellen sind in der gleichen MySQL-Datenbank). Das verwirrende Problem ist, dass ich das gleiche PHP-Skript habe, das auf einer virtuellen Maschine arbeitet, und es funktioniert großartig, es fügt in die 2 Tabellen alle Daten richtig ein. Jedoch, in einer anderen virtuellen Maschine (Beide haben Ubuntu Server 16.04 und die gleiche Konfiguration in Apache, PHP - Ich lief Diff gegen die Configs zu validieren), es fügt nur die Daten in der ersten Tabelle und in der zweiten Tabelle fügt keine Daten . Wie kann das sein, wenn beide Skripte die gleiche Version haben und das Betriebssystem und die Konfigurationen identisch sind?Baffling MySQL-PHP einfügen arbeitet 100% in einem Rechner, aber 50% auf einem anderen

Mit freundlichen Grüßen und danke für Ihre Zeit.

+0

sind die gleichen Versionen von PHP und Mysql? Verwenden Sie irgendwelche PHP-Module? – Edwin

+1

Lesen Sie die Fehlerprotokolle und versuchen Sie, das Problem zu reproduzieren. Bis Sie greifbar sind, das Beste, was wir für Sie empfehlen können, ist ein Huhn zu opfern und nackt im Mondlicht zu tanzen. –

+0

@Edwin Sie sehen, PHP und MySQL sind verschiedene Versionen. Ich werde eine der VM aktualisieren, um beide auf der gleichen Version zu haben. Hoffen wir, dass das ist, was dieses Problem verursacht, wenn nicht, werde ich der Empfehlung von tereško folgen. – SecretCoder

Antwort

0

Ich fand den Fehler, es passiert, dass auf der virtuellen Maschine, die das Skript funktionierte ich PHP 7.0 installiert habe und auf der virtuellen Maschine, wo das Skript nicht funktionierte ich habe PHP 7.1, sieht es aus, dass PDO in 7.1 ist viel strenger und ich sah nicht alle Fehler, weil ich fehlte: $db->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION);, um alle Ausnahmen in PHP 7.1 zu sehen. Als ich diese Zeile zu meinem Skript hinzufügte, sah ich diesen Fehler: PHP Fatal error: Uncaught PDOException: SQLSTATE[HY000]: General error: 1366 Incorrect decimal value: '' for column von dort war es sehr einfach, es zu reparieren. Ich hoffe, dass dies jemandem hilft.

Verwandte Themen