Bài viết này sẽ chỉ cho bạn cách nhập một số lượng lớn bản ghi từ tệp CSV vào Ứng dụng Laravel bằng trình tạo cơ sở dữ liệu
Khi chúng tôi có hàng nghìn hoặc hàng triệu bản ghi hoặc tệp CSV mà chúng tôi muốn lưu trữ trong cơ sở dữ liệu của mình, chúng tôi thường sử dụng các công việc định kỳ hoặc hàng đợi. Chúng tôi có thể sử dụng trình tạo cơ sở dữ liệu để nhập bản ghi nếu chúng tôi chỉ muốn nhập tệp CSV một lần
Vì tệp lớn và ứng dụng không thể xử lý nhiều yêu cầu cùng một lúc nên nó sẽ hiển thị thời gian thực hiện tối đa khi chúng tôi sử dụng chức năng nhập để lưu trữ lượng lớn dữ liệu. Vì vậy, chúng tôi đã thêm một mã ví dụ tuyệt vời để chèn tệp CSV lớn vào cơ sở dữ liệu bằng ứng dụng laravel chỉ trong vài phút hoặc vài giây
Bước 1. Cài đặt ứng dụng Laravel
Cài đặt một ứng dụng laravel mới, vì vậy hãy vào terminal, gõ lệnh và tạo một ứng dụng laravel mới
composer create-project --prefer-dist laravel/laravel large-csv-laravel
hoặc, nếu bạn đã cài đặt Trình cài đặt Laravel dưới dạng phần phụ thuộc của nhà soạn nhạc toàn cầu
laravel new large-csv-laravel
Bước 2. Cấu hình chi tiết cơ sở dữ liệu
Nhập thông tin đăng nhập cơ sở dữ liệu của bạn, bao gồm tên cơ sở dữ liệu, tên người dùng và mật khẩu, sau khi mở tệp
laravel new large-csv-laravel
2DB_HOST=127.0.0.1
DB_PORT=3306
DB_DATABASE=
DB_USERNAME=
DB_PASSWORD=
Bước 3. Tạo Migration và Model
Bước tiếp theo là sử dụng thiết bị đầu cuối để chạy lệnh sau để tạo mô hình và tệp di chuyển
php artisan make:model Product -m
thêm đoạn mã sau vào tệp di chuyển
public function up[]
{
Schema::create['products', function [Blueprint $table] {
$table->bigIncrements['id'];
$table->string['name'];
$table->string['description'];
$table->timestamps[];
}];
}
Mở dấu nhắc lệnh và nhập lệnh sau để tạo bảng trong cơ sở dữ liệu
php artisan migrate
Thêm đoạn mã sau vào
laravel new large-csv-laravel
3____14 tập tinlaravel new large-csv-laravel
0Bước 5. Chạy Database Seeder
Chạy lệnh sau để chạy Database seeder
laravel new large-csv-laravel
1Nhập các tệp CSV lớn trong MySQL bằng Laravel và maatwebsite/Laravel-Excel
Nếu bạn đang sử dụng Laravel Excel, bạn có thể sử dụng tính năng chunking. Sử dụng đoạn mã sau để nhập khối vào cơ sở dữ liệu qua Chunk Reading
laravel new large-csv-laravel
0Nếu bạn đang sử dụng lớp Nhập trong Ứng dụng Laravel của mình thông qua Laravel Excel thì bạn có thể sử dụng các phương pháp sau để nhập dữ liệu vào cơ sở dữ liệu
laravel new large-csv-laravel
1Cảm ơn bạn đã đọc bài viết này
đọc thêm. Laravel 9 Nhập Xuất Ví dụ Tệp Excel & CSV
Nếu bạn muốn quản lý Máy chủ VPS / VM của mình mà không cần chạm vào dòng lệnh, hãy xem liên kết này. ServerAvatar cho phép bạn thiết lập nhanh các trang web WordPress hoặc PHP tùy chỉnh trên VPS / VM chỉ trong vài phút. Bạn có thể lưu trữ nhiều trang web trên một VPS / VM, định cấu hình chứng chỉ SSL và theo dõi tình trạng của máy chủ mà không cần chạm vào giao diện dòng lệnh
PHP được sử dụng rộng rãi để xây dựng nhiều loại sản phẩm khác nhau, từ ứng dụng web đến ứng dụng cấp doanh nghiệp. Chìa khóa để mã PHP hiệu quả là tuân theo quy trình công việc phù hợp và tự động hóa các quy trình. Kết quả là mã chất lượng cao và không có lỗi
Trong hầu hết các ứng dụng PHP, dữ liệu được lưu trữ, truy cập và trao đổi giữa các thành phần khác nhau của ứng dụng. Để đảm bảo rằng việc trao đổi và truy cập dữ liệu này diễn ra suôn sẻ và không có bất kỳ sự cố nào, nhóm phát triển phải đảm bảo rằng cơ sở dữ liệu và kết xuất dữ liệu ở định dạng phù hợp
Nhập và xuất dữ liệu đến và từ cơ sở dữ liệu là một quy trình đủ phổ biến trong quá trình phát triển PHP. Một hoạt động quan trọng khác là sao lưu và truyền cơ sở dữ liệu
Trong bài viết này, tôi sẽ giải thích cách lưu bảng từ tệp CSV sang MySQL và ngược lại. Bạn cần đăng ký tại Cloudways để khởi chạy máy chủ và ứng dụng ngăn xếp PHP. Trước khi đăng ký, hãy xem xét tất cả các tùy chọn giá từ các nhà cung cấp dịch vụ lưu trữ đẳng cấp thế giới như AWS, DigitalOcean, Linode, Vultr và GCP để bạn có thể tìm thấy tùy chọn hoàn toàn phù hợp với nhu cầu của mình
Lưu trữ PHP. PHP7 và PHP5 tốt nhất. 6 Lưu trữ web
Tạo cơ sở dữ liệu trong MySQL
Bước đầu tiên trong hướng dẫn này là tạo cơ sở dữ liệu MySQL. Vì Cloudways cung cấp trình quản lý mysql tùy chỉnh trong nền tảng chứa cơ sở dữ liệu cho ứng dụng. bạn có thể tạo bảng bằng cách chạy truy vấn SQL. Tạo bảng `employeeinfo` trong cơ sở dữ liệu bằng truy vấn SQL sau
laravel new large-csv-laravel
4Thao tác này sẽ tạo một bảng mới `employeeinfo` trong cơ sở dữ liệu. Tôi sẽ sử dụng bảng này để chèn dữ liệu từ tệp CSV
Ngừng lãng phí thời gian trên máy chủ
Cloudways xử lý việc quản lý máy chủ cho bạn để bạn có thể tập trung vào việc tạo các ứng dụng tuyệt vời và giữ cho khách hàng của mình hài lòng
Tạo kết nối MySql trong PHP
Để nhập và xuất cơ sở dữ liệu trong MySql sẽ tạo một tệp riêng `config. php`. Thêm mã sau và thay thế thông tin đăng nhập cơ sở dữ liệu bằng mã của bạn. Bạn có thể tìm thông tin đăng nhập db của mình trong chi tiết Truy cập ứng dụng
laravel new large-csv-laravel
5Có liên quan. Cách kết nối cơ sở dữ liệu MySQL với các trang web PHP
Nhập CSV vào MySQL bằng PHP
Sau khi cơ sở dữ liệu đã được tạo, tiếp theo tôi cần một tệp HTML có thể tải tệp CSV lên. Đối với tệp HTML này, tôi sẽ sử dụng Trình tải lên tệp HTML ở dạng bootstrap đơn giản
Tạo một tệp và đặt tên là `index. php`. Đây là một hình thức đơn giản để tải lên tệp CSV. Tệp này cũng sẽ hiển thị kết quả trong một bảng đơn giản trên cùng một trang. Khi người dùng gửi biểu mẫu, tất cả các bản ghi sẽ được lưu trong cơ sở dữ liệu
Đầu tiên, tôi sẽ thêm Bootstrap CDN vào chỉ mục. php
laravel new large-csv-laravel
6Tiếp theo, trong thẻ `body`, hãy thêm mã HTML sau cho biểu mẫu Bootstrap
laravel new large-csv-laravel
7Bạn có thể nhận thấy rằng tôi đã đặt một hành động thành `functions. tập tin php`. Trong bước tiếp theo, tôi sẽ tạo tệp này và thêm mã vào nó. Tôi cũng đã bao gồm một phương thức `get_all_records[]` ở gần cuối tệp. Phương thức này lấy tất cả các bản ghi từ cơ sở dữ liệu và hiển thị các bản ghi trong bảng trên trang chỉ mục
Tiếp theo, tôi sẽ tạo `hàm. php` và thêm đoạn mã sau vào đó
laravel new large-csv-laravel
8Khi nhấp vào nút tải lên, tên tệp tạm thời sẽ được lưu trong bộ nhớ và sử dụng vòng lặp `while`, dữ liệu được lưu trong biến $getData. Sau khi quá trình hoàn tất, dữ liệu được sắp xếp theo cột một cách khôn ngoan và cuối cùng được chèn vào bảng `employeeinfo`
Lưu ý rằng `fgetcsv[]` phân tích cú pháp các dòng từ tệp đang mở, kiểm tra các trường CSV và `fopen[]` sẽ mở một tệp hoặc một URL. Có thể kiểm tra mã này bằng cách nhập tệp CSV có dữ liệu kiểm tra
Hiển thị các bản ghi đã lưu
Khi tệp CSV đã được nhập, tôi sẽ hiển thị dữ liệu thông qua một chức năng đơn giản, `get_all_records[]`, được khởi tạo trong `index. php`. Sao chép hàm này vào `function. php`
laravel new large-csv-laravel
9Trong phương pháp thực sự đơn giản này, tôi chỉ cần chọn tất cả các bản ghi và hiển thị các bản ghi này trên trang chỉ mục thông qua phương thức. Bất cứ khi nào người dùng tải lên tệp CSV, các bản ghi sẽ được lưu trong bảng và sau đó được hiển thị trên trang chỉ mục
Xuất MySQL sang CSV bằng PHP
Xuất dữ liệu từ cơ sở dữ liệu MySQL sang tệp CSV cũng rất dễ dàng. Để chứng minh điều này, tôi sẽ sử dụng chỉ số. php mà tôi đã tạo trước đó
Thêm đoạn mã sau vào tập tin
laravel new large-csv-laravel
0Sau khi thêm phần đánh dấu HTML này, nút Xuất sẽ xuất hiện bên dưới bảng. Bây giờ thêm điều kiện sau vào hàm. php
laravel new large-csv-laravel
1Khi nhấp vào nút `Xuất`, các tiêu đề `Loại nội dung. văn bản/csv` có tệp đính kèm `dữ liệu. csv` được gửi
Vì `php. //output` là luồng chỉ ghi cho phép ghi quyền truy cập vào cơ chế bộ đệm đầu ra, tôi đã chọn tất cả dữ liệu từ bảng ở dòng tiếp theo và chuyển nó sang phương thức `fputcsv[]` . Phương thức này định dạng một dòng [được truyền dưới dạng một mảng trường] dưới dạng CSV và ghi nó [được kết thúc bởi một dòng mới] vào tệp đã chỉ định. Cuối cùng, tệp có tất cả dữ liệu mong muốn được tải xuống
Cuối cùng, sau khi tích hợp tất cả mã, bạn sẽ thấy hình dạng ứng dụng cuối cùng sau đây
Bạn cũng có thể thích. CRUD đơn giản trong PHP và MySQL
Phần kết luận
Trong bài viết này, tôi đã thảo luận về cách bạn có thể xuất dữ liệu từ và sang tệp CSV bằng PHP và MySQL. Đây là một ví dụ đơn giản, bạn có thể Thêm logic và xác thực phức tạp hơn theo yêu cầu của mình. Bạn cũng có thể tạo các trường hợp thử nghiệm để xác minh mã và Tích hợp với GitHub bằng Công cụ tích hợp liên tục PHP. Nếu bạn muốn thêm vào cuộc thảo luận hoặc muốn đặt câu hỏi, hãy để lại nhận xét bên dưới