Tôi đã trả lời một câu hỏi gần như giống hệt nhau vào ngày hôm trước: Lưu tệp CSV vào cơ sở dữ liệu mysql
MySQL có một tính năng LOAD DATA INFILE
, cho phép nó nhập trực tiếp tệp CSV trong một truy vấn SQL duy nhất mà không cần xử lý nó trong một vòng lặp thông qua chương trình PHP của bạn.
Ví dụ đơn giản:
<?php
$query = <<<eof
LOAD DATA INFILE '$fileName'
INTO TABLE tableName
FIELDS TERMINATED BY '|' OPTIONALLY ENCLOSED BY '"'
LINES TERMINATED BY '\n'
(field1,field2,field3,etc)
eof;
$db->query($query);
?>
Nó đơn giản như vậy.
Không có vòng lặp, không ồn ào. Và nhiều nhiều nhanh hơn so với phân tích cú pháp trong PHP.
Trang hướng dẫn sử dụng MySQL tại đây: http://dev.mysql. com / doc / refman / 5.1 / en / load-data.html
Hy vọng điều đó sẽ giúp