Làm cách nào để nhập tệp csv từ mysql sang php?

Trong bài viết này, chúng tôi sẽ lưu trữ dữ liệu có trong tệp CSV vào cơ sở dữ liệu MySQL bằng PHP trong máy chủ XAMPP và hiển thị dữ liệu trên trình duyệt web

Giá trị được phân tách bằng dấu phẩy (CSV) là tệp văn bản chứa nội dung dữ liệu. Nó tạo điều kiện cho việc lưu trữ dữ liệu trong một bảng giống như cấu trúc. Tệp CSV được lưu trữ với tiện ích mở rộng CSV. Có thể tạo tệp CSV bằng cách sử dụng bất kỳ trình soạn thảo văn bản nào, chẳng hạn như notepad , notepad++ , etc. After adding content to a text file in the notepad, store it as a csv file with the use of . tiện ích mở rộng csv .

Yêu cầu. Máy chủ XAMPP

bước

  • Tạo kết nối tới cơ sở dữ liệu
  • Tải CSV
  • Thực hiện Truy vấn và xác minh kết quả

Cú pháp với Step by Step

1. Tạo kết nối tới cơ sở dữ liệu

$db=new mysqli('tên máy chủ','tên người dùng','mật khẩu','tên cơ sở dữ liệu');

nếu ($db->connect_errno) {

tiếng vang "Không thành công". $db->connect_error;

lối ra();

}

?>

Ở đây, Tên máy chủ là localhost, tên người dùng là mặc định người dùng của bạn là root, mật khẩu mặc định trống. tên cơ sở dữ liệu là tên của cơ sở dữ liệu của bạn

2. Lấy tệp CSV bằng chức năng fopen

Nó được sử dụng để mở một tập tin

fopen(tên tệp, chế độ, đường dẫn bao gồm, ngữ cảnh)

Nơi đây

tên tệp được sử dụng để chỉ định tệp hoặc URL để mở

mode là  Chỉ định loại quyền truy cập mà bạn yêu cầu đối với tệp/luồng

3. Nhận tệp CSV. Chúng tôi có thể lấy tệp CSV bằng hàm fgetcsv()

4. truy vấn cơ sở dữ liệu

Bây giờ chúng ta có thể viết truy vấn cơ sở dữ liệu để chèn dữ liệu

$db->query(‘INSERT INTO table VALUES (“‘. $row[0]. '”, “‘. $row[1]. '”, “‘. $row[2]. ‘”. . . “‘. $row[n]. ‘”)’);

Truy vấn được sử dụng để nhận truy vấn

hàng [n] đại diện cho số lượng hàng sẽ được thực hiện để tải

Quá trình tạo cơ sở dữ liệu và bảng

1. Xem xét tệp CSV có tên chi tiết. csv

Làm cách nào để nhập tệp csv từ mysql sang php?

2. Mở XAMPP và bắt đầu dịch vụ MySQL, Apache

Làm cách nào để nhập tệp csv từ mysql sang php?

3. Nhập “http. //localhost/phpmyadmin/” trong trình duyệt của bạn

4. Nhấp vào mới và tạo cơ sở dữ liệu có tên là gfg

Làm cách nào để nhập tệp csv từ mysql sang php?

5. Tạo bảng với tên “table2”

Làm cách nào để nhập tệp csv từ mysql sang php?

Các bước thực hiện

1. chi tiết cửa hàng. csv và chỉ mục. php trong một thư mục theo đường dẫn “C. \xampp\htdocs\gfg”

Làm cách nào để nhập tệp csv từ mysql sang php?

2. mở chỉ mục. php và nhập mã được cung cấp bên dưới

PHP




<?php

 

________số 8

// Localhost is the server name, 

<form action="3-import.php" method="post" enctype="multipart/form-data">
  <input type="file" name="upcsv" accept=".csv" required>
  <input type="submit" value="Upload">
</form>
0

<form action="3-import.php" method="post" enctype="multipart/form-data">
  <input type="file" name="upcsv" accept=".csv" required>
  <input type="submit" value="Upload">
</form>
1

<form action="3-import.php" method="post" enctype="multipart/form-data">
  <input type="file" name="upcsv" accept=".csv" required>
  <input type="submit" value="Upload">
</form>
2

<form action="3-import.php" method="post" enctype="multipart/form-data">
  <input type="file" name="upcsv" accept=".csv" required>
  <input type="submit" value="Upload">
</form>
3
<form action="3-import.php" method="post" enctype="multipart/form-data">
  <input type="file" name="upcsv" accept=".csv" required>
  <input type="submit" value="Upload">
</form>
4
<form action="3-import.php" method="post" enctype="multipart/form-data">
  <input type="file" name="upcsv" accept=".csv" required>
  <input type="submit" value="Upload">
</form>
5  0_______71 2 3 2 5 2 7 8

Chào mừng bạn đến với hướng dẫn nhanh về cách nhập tệp CSV vào cơ sở dữ liệu MYSQL trong PHP. Bạn muốn cho phép quản trị viên tải tập hợp dữ liệu của riêng họ vào cơ sở dữ liệu?

ⓘ Tôi đã bao gồm một tệp zip chứa tất cả mã nguồn ví dụ khi bắt đầu hướng dẫn này, vì vậy bạn không cần phải sao chép-dán mọi thứ… Hoặc nếu bạn chỉ muốn đi sâu vào

 

 

TLDR – TRANG TRÌNH BÀY NHANH

Làm cách nào để nhập tệp csv từ mysql sang php?
Tải xuống & Ghi chú

Làm cách nào để nhập tệp csv từ mysql sang php?
Nhập CSV

Làm cách nào để nhập tệp csv từ mysql sang php?
Bit bổ sung & liên kết

Làm cách nào để nhập tệp csv từ mysql sang php?
Video hướng dẫn

Làm cách nào để nhập tệp csv từ mysql sang php?
Kết thúc

 

 

TẢI XUỐNG & LƯU Ý

Đầu tiên, đây là liên kết tải xuống mã nguồn ví dụ như đã hứa

 

GHI CHÚ NHANH

  • Tạo cơ sở dữ liệu thử nghiệm và nhập
    <form action="3-import.php" method="post" enctype="multipart/form-data">
      <input type="file" name="upcsv" accept=".csv" required>
      <input type="submit" value="Upload">
    </form>
    5
  • Thay đổi cài đặt cơ sở dữ liệu trong
    <form action="3-import.php" method="post" enctype="multipart/form-data">
      <input type="file" name="upcsv" accept=".csv" required>
      <input type="submit" value="Upload">
    </form>
    6 thành cài đặt của riêng bạn
  • Truy cập
    <form action="3-import.php" method="post" enctype="multipart/form-data">
      <input type="file" name="upcsv" accept=".csv" required>
      <input type="submit" value="Upload">
    </form>
    7 trong trình duyệt và tải lên
    <form action="3-import.php" method="post" enctype="multipart/form-data">
      <input type="file" name="upcsv" accept=".csv" required>
      <input type="submit" value="Upload">
    </form>
    8
Nếu bạn phát hiện ra một lỗi, hãy bình luận bên dưới. Tôi cũng cố gắng trả lời các câu hỏi ngắn, nhưng đó là một người so với cả thế giới… Nếu bạn cần câu trả lời gấp, vui lòng xem danh sách các trang web của tôi để được trợ giúp về lập trình

 

MÃ VÍ DỤ TẢI XUỐNG

Nhấp vào đây để tải xuống mã nguồn, tôi đã phát hành nó theo giấy phép MIT, vì vậy hãy thoải mái xây dựng trên mã nguồn hoặc sử dụng nó trong dự án của riêng bạn

 

NHẬP CSV VÀO CƠ SỞ DỮ LIỆU MYSQL

Được rồi, bây giờ chúng ta hãy đi vào ví dụ về cách nhập tệp CSV trong PHP và MySQL

 

BƯỚC 1) CƠ SỞ DỮ LIỆU GIẢ & CSV

1A) BẢNG NGƯỜI DÙNG

người dùng 1a. sql

CREATE TABLE `users` (
  `user_id` bigint(20) NOT NULL,
  `user_email` varchar(255) NOT NULL,
  `user_name` varchar(255) NOT NULL
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4;

ALTER TABLE `users`
  ADD PRIMARY KEY (`user_id`),
  ADD UNIQUE KEY `user_email` (`user_email`),
  ADD KEY `user_name` (`user_name`);

ALTER TABLE `users`
  MODIFY `user_id` bigint(20) NOT NULL AUTO_INCREMENT;

Trong ví dụ này, chúng tôi sẽ làm việc với bảng người dùng giả này. Rất đơn giản chỉ với 3 trường –

  • <form action="3-import.php" method="post" enctype="multipart/form-data">
      <input type="file" name="upcsv" accept=".csv" required>
      <input type="submit" value="Upload">
    </form>
    9 ID, khóa chính
  • <?php
    // (A) CONNECT TO DATABASE - CHANGE SETTINGS TO YOUR OWN!
    $dbHost = "localhost";
    $dbName = "test";
    $dbChar = "utf8";
    $dbUser = "root";
    $dbPass = "";
    try {
      $pdo = new PDO(
        "mysql:host=".$dbHost.";dbname=".$dbName.";charset=".$dbChar,
        $dbUser, $dbPass, [PDO::ATTR_ERRMODE => PDO::ERRMODE_EXCEPTION]
      );
    } catch (Exception $ex) { exit($ex->getMessage()); }
     
    // (B) READ UPLOADED CSV
    $fh = fopen($_FILES["upcsv"]["tmp_name"], "r");
    if ($fh === false) { exit("Failed to open uploaded CSV file"); }
     
    // (C) IMPORT ROW BY ROW
    while (($row = fgetcsv($fh)) !== false) {
      try {
        // print_r($row);
        $stmt = $pdo->prepare("INSERT INTO `users` (`user_email`, `user_name`) VALUES (?,?)");
        $stmt->execute([$row[0], $row[1]]);
      } catch (Exception $ex) { echo $ex->getmessage(); }
    }
    fclose($fh);
    echo "DONE.";
    0 Email của người dùng
  • <form action="3-import.php" method="post" enctype="multipart/form-data">
      <input type="file" name="upcsv" accept=".csv" required>
      <input type="submit" value="Upload">
    </form>
    0 Tên người dùng

 

1B) CSV NGƯỜI DÙNG

jane@doe. com Jane Doe Joe@doe. comJoe Doe John@doe. comJohn Doe

Đúng rồi. Chỉ toàn bộ email và tên của người dùng

 

 

BƯỚC 2) TẢI LÊN TỆP CSV

2-tải lên. html

<form action="3-import.php" method="post" enctype="multipart/form-data">
  <input type="file" name="upcsv" accept=".csv" required>
  <input type="submit" value="Upload">
</form>

Tiếp theo, chúng tôi có một biểu mẫu tải lên tệp HTML đơn giản chỉ chấp nhận tệp CSV

 

BƯỚC 3) PHP NHẬP CSV VÀO MYSQL

3-nhập khẩu. php

<?php
// (A) CONNECT TO DATABASE - CHANGE SETTINGS TO YOUR OWN!
$dbHost = "localhost";
$dbName = "test";
$dbChar = "utf8";
$dbUser = "root";
$dbPass = "";
try {
  $pdo = new PDO(
    "mysql:host=".$dbHost.";dbname=".$dbName.";charset=".$dbChar,
    $dbUser, $dbPass, [PDO::ATTR_ERRMODE => PDO::ERRMODE_EXCEPTION]
  );
} catch (Exception $ex) { exit($ex->getMessage()); }
 
// (B) READ UPLOADED CSV
$fh = fopen($_FILES["upcsv"]["tmp_name"], "r");
if ($fh === false) { exit("Failed to open uploaded CSV file"); }
 
// (C) IMPORT ROW BY ROW
while (($row = fgetcsv($fh)) !== false) {
  try {
    // print_r($row);
    $stmt = $pdo->prepare("INSERT INTO `users` (`user_email`, `user_name`) VALUES (?,?)");
    $stmt->execute([$row[0], $row[1]]);
  } catch (Exception $ex) { echo $ex->getmessage(); }
}
fclose($fh);
echo "DONE.";

Cuối cùng, tập lệnh PHP để nhập tệp CSV đã tải lên

  1. Kết nối với cơ sở dữ liệu. Hãy nhớ thay đổi cài đặt thành của riêng bạn
  2. Thử mở tệp CSV đã tải lên
  3. Đọc và nhập tệp CSV vào cơ sở dữ liệu theo từng hàng

Kết thúc

 

 

THÊM) KHUYẾN NGHỊ và MẸO

<?php
// (A) SET TIME LIMIT (SECONDS)
set_time_limit(300);

// (B) DATA CHECK
while (($row = fgetcsv($fh)) !== false) {
  if (!filter_var($row[0], FILTER_VALIDATE_EMAIL)) {
    echo "INVALID EMAIL FORMAT - " . $row[1];
    continue;
  }
}

Ví dụ trên sẽ hoạt động đủ tốt, nhưng luôn cho rằng mọi thứ sẽ không ổn. Dưới đây là một vài “lỗi có thể xảy ra” phổ biến và mẹo xử lý chúng

  • Tập lệnh PHP sẽ hết thời gian chờ khi nhập tệp CSV lớn, một "cách khắc phục" đơn giản là đặt thời gian chờ lâu hơn với
    <form action="3-import.php" method="post" enctype="multipart/form-data">
      <input type="file" name="upcsv" accept=".csv" required>
      <input type="submit" value="Upload">
    </form>
    1. Cách nâng cao là chạy tập lệnh nhập trong nền – Xem các liên kết bên dưới
  • Người dùng đôi khi sẽ làm rối dữ liệu CSV. Ví dụ: bằng cách hoán đổi các cột email/tên và để trống các hàng. Như trên, hãy kiểm tra mọi ô trước khi bạn nhập chúng. Hãy chắc chắn rằng đó là một email hợp lệ, không phải là một ô trống, v.v…
  • Sau đó, cũng có vấn đề về những người dùng thiếu kiên nhẫn sẽ tải lại và nhập lại – Kết thúc với các mục nhập trùng lặp. Áp đặt các khóa duy nhất của riêng bạn trong cơ sở dữ liệu để tránh trùng lặp

 

 

BIT BỔ SUNG & LIÊN KẾT

Đó là tất cả cho hướng dẫn này và đây là một phần nhỏ về một số tính năng bổ sung và liên kết có thể hữu ích cho bạn

 

LIÊN KẾT và THAM KHẢO

  • Mở tệp – PHP
  • Tải tệp CSV – PHP
  • Đặt giới hạn thời gian – PHP
  • PDO (Đối tượng cơ sở dữ liệu) – PHP
  • Cách chạy tập lệnh PHP trong nền – Code Boxx

 

VIDEO HƯỚNG DẪN

 

BẢNG CHEAT INFOGRAPHIC

Cảm ơn bạn đã đọc, và chúng tôi đã đi đến phần cuối của hướng dẫn này. Tôi hy vọng rằng nó đã giúp bạn với dự án của bạn và nếu bạn muốn chia sẻ bất cứ điều gì với hướng dẫn này, xin vui lòng bình luận bên dưới. Chúc may mắn và mã hóa hạnh phúc

PHP có thể đọc tệp CSV không?

PHP có hai chức năng sẵn có để đọc tệp CSV . fgetcsv() – Đọc CSV bằng tham chiếu của tài nguyên tệp. str_getcsv() – Đọc dữ liệu CSV được lưu trữ trong một biến.

Làm cách nào tôi có thể kết nối PHP với MySQL?

Cách kết nối PHP với cơ sở dữ liệu MySQL .
Sử dụng tiện ích mở rộng để kết nối cơ sở dữ liệu MySQL trong PHP. PHP cung cấp ba phần mở rộng mà bạn có thể sử dụng để. .
Thêm các câu lệnh SQL vào các hàm PHP. Bằng cách sử dụng các phần mở rộng MySQL trong các tập lệnh PHP, bạn có thể thêm các câu lệnh SQL sau vào các hàm CRUD của PHP để hoạt động với các bản ghi cơ sở dữ liệu MySQL