Masukkan data di csv php

Ada banyak cara untuk mengimplementasikan impor CSV. Kami telah melihat satu atau dua contoh sebelumnya. Bahkan, artikel ini memberikan dua contoh impor CSV ke MySQL

Tentang dua contoh

  1. Contoh cepat untuk sekadar mengimpor data dari file CSV yang ada
  2. Kode fitur interaktif untuk memilih CSV melalui formulir dan memproses impor CSV

Kode sederhana ini mengimpor CSV ke database MySQL menggunakan PHP. Yang dibutuhkan hanyalah file sumber CSV dan database target. Lihat prasyarat untuk bereksperimen dengan contoh ini di lingkungan Anda

Contoh Cepat

Impor CSV ke MySQL PHP

prepare("INSERT INTO tbl_users (userName, firstName, lastName) VALUES (?, ?, ?)"); $stmt->bind_param("sss", $row[1], $row[2], $row[3]); $stmt->execute(); } ?>

Prasyarat

Blok di bawah ini berisi prasyarat untuk menjalankan contoh cepat CSV ke MySQL

Ini menampilkan data sumber dalam format CSV dan struktur database untuk memiliki tabel tbl_users

(1) File CSV sumber

1,kevin_tom,Kevin,Thomas 2,vincy,Vincy,Jone 3,tim_lee,Tim,Lee 4,jane,Jane,Ferro _

(2) Menargetkan basis data MySQL

CREATE TABLE `tbl_users` ( `id` int(11) NOT NULL, `userName` varchar(255) NOT NULL, `firstName` varchar(255) NOT NULL, `lastName` varchar(255) NOT NULL, `create_at` timestamp NOT NULL DEFAULT current_timestamp() ON UPDATE current_timestamp() ); ALTER TABLE `tbl_users` ADD PRIMARY KEY (`id`); ALTER TABLE `tbl_users` MODIFY `id` int(11) NOT NULL AUTO_INCREMENT;

Langkah-langkah untuk mengimplementasikan mengimpor CSV ke MySQL

  1. Buat database target untuk menyimpan catatan CSV
  2. Rancang formulir impor dan tangani validasi
  3. Kembangkan titik akhir pembacaan file PHP untuk mengimpor CSV ke database MySQL

Contoh 2. Impor CSV ke MySQL yang lengkap dan unggulan

Mari kita lihat contoh rumit ini dengan mengikuti tiga langkah di atas. Ini menunjukkan kode yang dibuat untuk mencapai setiap langkah untuk mengimplementasikan impor CSV ke MySQL

Contoh ini menggunakan database yang sama dengan targetnya untuk mengimpor data CSV

Formulir HTML untuk memilih sumber CSV

Formulir HTML ini memungkinkan pengguna untuk memilih file sumber CSV. Itu menerima file CSV dan Excel untuk membaca data untuk diimpor

indeks. php (Formulir Impor)

Coose your file. Download template

Import CSV and Save Data

Skrip validasi CSS dan jQuery

Formulir di atas memanggil skrip validasi saat dikirim. Skrip validasi ada di jQuery untuk memeriksa apakah input file tidak kosong. Itu ada di bagian kepala dari indeks yang sama. halaman php

indeks. php (Validasi)

_

dan gaya adalah,

gaya. css

body { font-family: Arial; width: 550px; font-size: 0.9em; margin: 60px auto; } .heading { text-align: center; } .form-container { border: #e0dfdf 1px solid; padding: 30px 30px 10px 30px; border-radius: 15px; margin: 10px auto; width: 350px; text-align: center; } .input-row { margin-top: 0px; margin-bottom: 20px; } .btn-submit { background: #efefef; border: #d3d3d3 1px solid; width: 100%; border-radius: 20px; cursor: pointer; padding: 12px; } .btn-submit:hover { background: #d9d8d8; border: #c3c1c1 1px solid; } .outer-container table { border-collapse: collapse; width: 100%; } .outer-container th { border-top: 2px solid #dddddd; background: #f9f9f9; padding: 8px; text-align: left; font-weight: normal; } .outer-container td { border-top: 1px solid #dddddd; padding: 8px; text-align: left; } .outer-container label { margin-bottom: 5px; display: inline-block; } #response { padding: 10px; border-radius: 15px; } .success { background: #c7efd9; border: #bbe2cd 1px solid; } .error { background: #fbcfcf; border: #f3c6c7 1px solid; } .file { border: 1px solid #cfcdcd; padding: 10px; border-radius: 20px; color: #171919; width: 100%; margin-bottom: 20px; }

Impor CSV ke MySQL dalam PHP

Saat mengirimkan formulir, kode PHP memicu penangan baca CSV. Fungsi readUserRecords() dari kelas UserModel sedang melakukan penguraian CSV ini

indeks. php (Memicu pembacaan CSV di PHP)

readUserRecords(); } ?> _

dan kelas UserModel berisi fungsi untuk melakukan hal berikut

Kelas model ini menghubungkan database dalam konstruktornya dan mengatur objek koneksi

UserModel. php

conn = new DataSource(); } function getAllUser() { $sqlSelect = "SELECT * FROM users"; $result = $this->conn->select($sqlSelect); return $result; } function readUserRecords() { $fileName = $_FILES["file"]["tmp_name"]; if ($_FILES["file"]["size"] > 0) { $file = fopen($fileName, "r"); $importCount = 0; while (($column = fgetcsv($file, 10000, ",")) !== FALSE) { if (! empty($column) && is_array($column)) { if ($this->hasEmptyRow($column)) { continue; } if (isset($column[1], $column[3], $column[4])) { $userName = $column[1]; $password = $column[2]; $firstName = $column[3]; $lastName = $column[4]; $insertId = $this->insertUser($userName, $password, $firstName, $lastName); if (! empty($insertId)) { $output["type"] = "success"; $output["message"] = "Import completed."; $importCount ++; } } } else { $output["type"] = "error"; $output["message"] = "Problem in importing data."; } } if ($importCount == 0) { $output["type"] = "error"; $output["message"] = "Duplicate data found."; } return $output; } } function hasEmptyRow(array $column) { $columnCount = count($column); $isEmpty = true; for ($i = 0; $i < $columnCount; $i ++) { if (! empty($column[$i]) || $column[$i] !== '') { $isEmpty = false; } } return $isEmpty; } function insertUser($userName, $password, $firstName, $lastName) { $sql = "SELECT userName FROM users WHERE userName = ?"; $paramType = "s"; $paramArray = array( $userName ); $result = $this->conn->select($sql, $paramType, $paramArray); $insertId = 0; if (empty($result)) { $hashedPassword = password_hash($password, PASSWORD_DEFAULT); $sql = "INSERT into users (userName,password,firstName,lastName) values (?,?,?,?)"; $paramType = "ssss"; $paramArray = array( $userName, $hashedPassword, $firstName, $lastName ); $insertId = $this->conn->insert($sql, $paramType, $paramArray); } return $insertId; } } ?>

Daftar data yang diimpor dari database

Ini untuk menutup loop proses impor CSV ke MySQL. Dengan langkah ini, pengguna mengalami bahwa impor berhasil diselesaikan

Ini menunjukkan data yang diimpor di layar. Alih-alih menampilkan pesan statis seperti 'Impor berhasil', ini akan memberikan pengalaman pengguna yang baik

Bagaimana cara menambahkan data ke file CSV di PHP?

Untuk mengonversi larik menjadi file CSV, kita dapat menggunakan fungsi fputcsv() . Fungsi fputcsv() digunakan untuk memformat baris sebagai file CSV (nilai yang dipisahkan koma) dan menulisnya ke file terbuka.

Bagaimana cara menambahkan jeda baris dalam file CSV PHP?

"\n" menambahkan baris baru di akhir baris untuk saya (jadi mulailah baris baru di excel) bukan baris baru di dalam nilai sel itu sendiri. Jadi kami tidak menginginkan baris tetapi jeda baris dalam sel saat membuka csv di excel atau angka.

Postingan terbaru

LIHAT SEMUA