Milyonlarla veriyi hızlı ve performanslı şekilde veritabanına eklemek için yapılabilecekler:
$file = storage_path('app/user.csv');
DB::statement("LOAD DATA LOCAL INFILE {$file} INTO TABLE users FIELDS TERMINATED BY ',' LINES TERMINATED BY '\\n' (name,email,phone,password) ");
Dosyadan veri yüklenmesine izin vermek için mysql yapılandırmanızı değiştirin
[mysql]
local_infile=1
[mysqld]
local_infile=1
config -> database.php -> connections -> mysql -> options:
PDO::MYSQL_ATTR_LOCAL_INFILE => true
Konu ile ilgili video:
How to Bulk Insert Data With Laravel - https://www.youtube.com/watch?v=-RmHhQy2m2M
$escapedPath = DB::getPdo()->quote($file);
DB::statement("LOAD DATA LOCAL INFILE {$escapedPath} INTO TABLE users FIELDS TERMINATED BY ',' LINES TERMINATED BY '\\n' (@date_var, log_time, name,email,phone,password) SET log_date = STR_TO_DATE(@date_var, '%m/%d/%Y')");
``