Rumah > Artikel > pangkalan data > Import Data CSV dan Excel Automatik ke Pangkalan Data MySQL dan PostgreSQL Menggunakan PHP
Untuk mengautomasikan pemindahan data daripada fail CSV atau Excel ke pangkalan data MySQL dan PostgreSQL menggunakan PHP, ikut langkah berikut:
Pasang perpustakaan yang diperlukan:
Muat turun perpustakaan PHPExcel dan masukkannya dalam direktori projek anda.
Kami akan menggunakan PDO untuk menyambung ke MySQL dan PostgreSQL.
<?php // MySQL connection $mysqlHost = 'localhost'; $mysqlDB = 'mysql_database'; $mysqlUser = 'mysql_user'; $mysqlPassword = 'mysql_password'; try { $mysqlConnection = new PDO("mysql:host=$mysqlHost;dbname=$mysqlDB", $mysqlUser, $mysqlPassword); $mysqlConnection->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION); echo "Connected to MySQL successfully.<br>"; } catch (PDOException $e) { die("MySQL connection failed: " . $e->getMessage()); } // PostgreSQL connection $pgHost = 'localhost'; $pgDB = 'pgsql_database'; $pgUser = 'pgsql_user'; $pgPassword = 'pgsql_password'; try { $pgConnection = new PDO("pgsql:host=$pgHost;dbname=$pgDB", $pgUser, $pgPassword); $pgConnection->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION); echo "Connected to PostgreSQL successfully.<br>"; } catch (PDOException $e) { die("PostgreSQL connection failed: " . $e->getMessage()); } ?>
Kami akan mencipta fungsi yang membaca sama ada fail CSV atau Excel dan mengembalikan data sebagai tatasusunan.
<?php require 'path/to/PHPExcel.php'; function readFileData($filePath) { $fileType = strtolower(pathinfo($filePath, PATHINFO_EXTENSION)); if ($fileType === 'csv') { $data = []; if (($handle = fopen($filePath, 'r')) !== false) { while (($row = fgetcsv($handle, 1000, ',')) !== false) { $data[] = $row; } fclose($handle); } return $data; } elseif ($fileType === 'xls' || $fileType === 'xlsx') { $data = []; $excel = PHPExcel_IOFactory::load($filePath); $sheet = $excel->getActiveSheet(); foreach ($sheet->getRowIterator() as $row) { $rowData = []; $cellIterator = $row->getCellIterator(); $cellIterator->setIterateOnlyExistingCells(false); foreach ($cellIterator as $cell) { $rowData[] = $cell->getValue(); } $data[] = $rowData; } return $data; } else { throw new Exception("Unsupported file format"); } } ?>
Tentukan fungsi untuk memasukkan data ke dalam MySQL dan PostgreSQL. Contoh ini menganggap data ialah tatasusunan tatasusunan, di mana setiap tatasusunan dalam mewakili baris dalam pangkalan data.
<?php function insertIntoMySQL($mysqlConnection, $data) { $query = "INSERT INTO your_mysql_table (column1, column2, column3) VALUES (?, ?, ?)"; $stmt = $mysqlConnection->prepare($query); foreach ($data as $row) { $stmt->execute($row); } echo "Data inserted into MySQL successfully.<br>"; } function insertIntoPostgreSQL($pgConnection, $data) { $query = "INSERT INTO your_pg_table (column1, column2, column3) VALUES (?, ?, ?)"; $stmt = $pgConnection->prepare($query); foreach ($data as $row) { $stmt->execute($row); } echo "Data inserted into PostgreSQL successfully.<br>"; } ?>
Muat data daripada fail, kemudian hantarkannya ke setiap fungsi untuk dimasukkan ke dalam MySQL dan PostgreSQL.
<?php $filePath = 'path/to/yourfile.csv'; // or .xls / .xlsx try { $data = readFileData($filePath); insertIntoMySQL($mysqlConnection, $data); insertIntoPostgreSQL($pgConnection, $data); } catch (Exception $e) { echo "Error: " . $e->getMessage(); } ?>
Skrip ini akan membaca data daripada fail yang ditentukan dan memasukkannya ke dalam kedua-dua pangkalan data.
Hubungi saya:@ LinkedIn dan semak Portfolio saya.
Sila berikan Projek GitHub saya bintang ⭐️
Atas ialah kandungan terperinci Import Data CSV dan Excel Automatik ke Pangkalan Data MySQL dan PostgreSQL Menggunakan PHP. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!