>  기사  >  데이터 베이스  >  PHP를 사용하여 MySQL 및 PostgreSQL 데이터베이스로 자동 CSV 및 Excel 데이터 가져오기

PHP를 사용하여 MySQL 및 PostgreSQL 데이터베이스로 자동 CSV 및 Excel 데이터 가져오기

Susan Sarandon
Susan Sarandon원래의
2024-11-12 17:59:02199검색

Automated CSV and Excel Data Import to MySQL and PostgreSQL Databases Using PHP

PHP를 사용하여 CSV 또는 Excel 파일에서 MySQL 및 PostgreSQL 데이터베이스로 데이터 전송을 자동화하려면 다음 단계를 따르세요.

전제조건

  1. 필요한 라이브러리 설치:

    • MySQL 및 PostgreSQL용 PHP PDO 확장.
    • PHPExcel 라이브러리(또는 사용 가능한 경우 PhpSpreadsheet. 그러나 PHP 5.6과 더 호환되므로 PHPExcel을 사용하겠습니다).
  2. PHPExcel 라이브러리를 다운로드하여 프로젝트 디렉토리에 포함하세요.


1단계: 데이터베이스 연결 설정

PDO를 사용하여 MySQL과 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());
}
?>

2단계: CSV 또는 Excel 파일에서 데이터 로드

CSV 또는 Excel 파일을 읽고 데이터를 배열로 반환하는 함수를 만들어 보겠습니다.

<?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");
    }
}
?>

3단계: MySQL 및 PostgreSQL로 데이터 전송

MySQL과 PostgreSQL 모두에 데이터를 삽입하는 함수를 정의합니다. 이 예에서는 데이터가 배열의 배열이라고 가정합니다. 여기서 각 내부 배열은 데이터베이스의 행을 나타냅니다.

<?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>";
}
?>

4단계: 모든 것을 하나로 합치기

파일에서 데이터를 로드한 다음 이를 각 함수에 전달하여 MySQL과 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();
}
?>

예시 실행

  1. MySQL 및 PostgreSQL 데이터베이스와 테이블(your_mysql_table, your_pg_table)이 설정되어 있고 올바른 열(column1,column2,column3)이 있는지 확인하세요.
  2. CSV 또는 Excel 파일을 지정된 경로($filePath)에 배치하세요.
  3. 명령줄이나 브라우저(웹 서버인 경우)에서 이 PHP 스크립트를 실행하세요.

이 스크립트는 지정된 파일에서 데이터를 읽어 두 데이터베이스에 모두 삽입합니다.

저와 연결하세요:@ LinkedIn을 통해 내 포트폴리오를 확인해 보세요.

내 GitHub 프로젝트에 별점을 주세요 ⭐️

위 내용은 PHP를 사용하여 MySQL 및 PostgreSQL 데이터베이스로 자동 CSV 및 Excel 데이터 가져오기의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

성명:
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.