2016-10-31 18 views
0

In Laravel-Anwendung habe ich ein MySQL-Zeitstempelfeld deleted_at, die für SoftDeletes erstellt wurde und der Standardwert ist NULL. Wenn der Wert nicht NULL ist, repetiert der Eloquent die Daten nicht. Wenn ich eine CSV-Datei importiere, wird der NULL-Wert aus der Quelldatei zu 00:00:00.In Laravel-Anwendung transformiert mysql import Zeitstempel-Nullwerte in 0000-00-00 00:00:00

Ich lese Mysql import transforms timestamp null values to 0000-00-00 00:00:00 und \ N funktionierte nicht für mich. Ich habe viele Tabellen, die ich regelmäßig importieren muss, also muss ich das wirklich beheben. Bitte helfen Sie.

+0

Wie importieren Sie die Daten? –

+0

Folgen Sie der zweiten Antwort von dem Link, den Sie angegeben haben. Es könnte helfen. – smartrahat

+0

Ich verwende Import von phpMyAdmin und wählte csv-Datei. – grigore16

Antwort

0

Sie müssen den strikten Modus in MySQL deaktivieren. Insbesondere ist der Modusname STRICT_TRANS_TABLES. Öffnen Sie /etc/mysql/my.cnf (oder die gleiche Datei in Windows) finden und kommentieren Sie dort STRICT_TRANS_TABLES.

Weitere Informationen finden Sie hier:

http://dev.mysql.com/doc/refman/5.7/en/sql-mode.html#sql-mode-strict

+0

Ich benutze Xampp (mysql ver. 15.1 Distrib 10.1.16-MariaDB). Ich habe keine my.cnf-Datei. In der Datei my.ini existiert STRICT_TRANS_TABLES nicht. Ich lese https://mariadb.com/kb/en/mariadb/timestamp, kann aber mein Problem nicht beheben. – grigore16

0

Ich denke, Sie sollten Ihre config/database.php Datei. Diese Datei enthält die Variable, von der aus Sie den strikten Modus aktivieren können - Ein/Aus.

Laravel gibt Ihnen nun die Möglichkeit, mysql-Modi zu aktivieren/deaktivieren. Mit dieser neuen Funktion hat Laravel jetzt die Möglichkeit, drei Dinge zu tun: Deaktivieren Sie den "strikten" Modus und kehren Sie zum < = 5.6 Verhalten zurück; Aktivieren Sie den "strikten" Modus, indem Sie ihn auf das 5.7-Verhalten einstellen; oder anpassen, welche Modi aktiviert sind.

Der Code in der Datei so geht ...

'mysql' => [ 
     'driver' => 'mysql', 
     'host' => env('DB_HOST', 'localhost'), 
     'port' => env('DB_PORT', '3306'), 
     'database' => env('DB_DATABASE', 'forge'), 
     'username' => env('DB_USERNAME', 'forge'), 
     'password' => env('DB_PASSWORD', ''), 
     'charset' => 'utf8', 
     'collation' => 'utf8_unicode_ci', 
     'prefix' => '', 
     'strict' => true, // <----- This variable sets the strict mode. 
     'engine' => null, 
    ], 

diesen Wert auf false, wenn Sie es deaktivieren möchten machen den Strict-Modus anders wahr, die Strict-Modus zu aktivieren. Hoffe das hilft Ihnen, Ihr Problem zu lösen.

+0

In der Datenbank.php ist: 'strict' => false. – grigore16