Notice: Function _load_textdomain_just_in_time was called incorrectly. Translation loading for the wordpress-seo domain was triggered too early. This is usually an indicator for some code in the plugin or theme running too early. Translations should be loaded at the init action or later. Please see Debugging in WordPress for more information. (This message was added in version 6.7.0.) in /var/www/vinascript/html/wp-includes/functions.php on line 6114
Import dữ liệu từ CSV tới MySQL bằng PHP - VinaScript

Latest Post

Triển khai dự án PHP, Mysql với Nginx trên Docker Tìm hiểu về HTML – Ưu điểm, nhược điểm và cách hoạt động của HTML

Để nhập dữ liệu từ một tệp CSV vào MySQL, bạn có thể sử dụng đoạn mã PHP sau đây. Quá trình nhập dữ liệu sẽ diễn ra theo các bước sau:

  1. Đầu tiên, chúng ta sẽ đọc các tham số được truyền vào.
  2. Tiếp theo, chúng ta sẽ tạo một bảng trong cơ sở dữ liệu MySQL để lưu trữ dữ liệu từ tệp CSV.
  3. Sau đó, chúng ta sẽ đọc tệp CSV và nhập dữ liệu từ tệp CSV vào bảng MySQL.

Import dữ liệu từ CSV tới MySQL bằng lệnh SQL

Việc import dữ liệu từ CSV tới MySQL chúng ta sử dụng lệnh sql là LOAD DATA của MySQL

LOAD DATA INFILE "/home/vinasupport/file.csv"
INTO TABLE <table_name>
COLUMNS TERMINATED BY ','
OPTIONALLY ENCLOSED BY '"'
ESCAPED BY '"'
LINES TERMINATED BY 'n'
IGNORE 1 LINES;

Với <table_name> là bảng CSDL mà bạn muốn import.

Import dữ liệu từ CSV tới MySQL bằng PHP

Tạo 1 file php là: import-csv.php có nội dung như sau:

<?php 
error_reporting(E_ALL);
$host = 'localhost';
$user = 'root';
$pass = '';
$database = 'vinasupport';
$delimiter = ';'; // By default ,

$db = mysqli_connect($host, $user, $pass,$database);

if (!$db) {
    echo "Error: Unable to connect to MySQL." . PHP_EOL;
    echo "Debugging errno: " . mysqli_connect_errno() . PHP_EOL;
    echo "Debugging error: " . mysqli_connect_error() . PHP_EOL;
    exit;
}

/********************************************************************************/
// Parameters: filename.csv table_name

$argv = $_SERVER['argv'];

if($argv[1]) { $file = $argv[1]; }
else {
    echo "Please provide a file namen"; exit; 
}
if($argv[2]) { $table = $argv[2]; }
else {
    $table = pathinfo($file);
    $table = $table['filename'];
}

/********************************************************************************/
// Get the first row to create the column headings

$fp = fopen($file, 'r');
$frow = fgetcsv($fp,0,$delimiter);
$columns = '';
foreach($frow as $column) {
    if($columns) $columns .= ', ';
    $columns .= "`$column` varchar(191)"; // Max varchar for utf8mb4!!
}

$create = "create table if not exists $table ($columns);";
//Debug
echo $create."n";
mysqli_query($db,$create);

/********************************************************************************/
// Import the data into the newly created table.

$file = $_SERVER['PWD'].DIRECTORY_SEPARATOR.$file;
$q = "load data local infile '$file' into table $table fields terminated by '$delimiter' ignore 1 lines";
//Debug
echo $q."n";
mysqli_query($db,$q);

Để chạy đoạn code trên chúng ta sử dụng command sau:

php import-csv.php <path_of_csv_file> <table_name>

Để lại một bình luận

Email của bạn sẽ không được hiển thị công khai. Các trường bắt buộc được đánh dấu *