집 >데이터 베이스 >MySQL 튜토리얼 >PHP를 사용하여 MySQL 및 PostgreSQL 데이터베이스로 자동 CSV 및 Excel 데이터 가져오기
PHP를 사용하여 CSV 또는 Excel 파일에서 MySQL 및 PostgreSQL 데이터베이스로 데이터 전송을 자동화하려면 다음 단계를 따르세요.
필요한 라이브러리 설치:
PHPExcel 라이브러리를 다운로드하여 프로젝트 디렉토리에 포함하세요.
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()); } ?>
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"); } } ?>
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>"; } ?>
파일에서 데이터를 로드한 다음 이를 각 함수에 전달하여 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(); } ?>
이 스크립트는 지정된 파일에서 데이터를 읽어 두 데이터베이스에 모두 삽입합니다.
저와 연결하세요:@ LinkedIn을 통해 내 포트폴리오를 확인해 보세요.
내 GitHub 프로젝트에 별점을 주세요 ⭐️
위 내용은 PHP를 사용하여 MySQL 및 PostgreSQL 데이터베이스로 자동 CSV 및 Excel 데이터 가져오기의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!