Um die Datenübertragung von einer CSV- oder Excel-Datei zu einer MySQL- und PostgreSQL-Datenbank mithilfe von PHP zu automatisieren, befolgen Sie diese Schritte:
Notwendige Bibliotheken installieren:
Laden Sie die PHPExcel-Bibliothek herunter und fügen Sie sie in Ihr Projektverzeichnis ein.
Wir verwenden PDO, um eine Verbindung zu MySQL und PostgreSQL herzustellen.
<?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()); } ?>
Wir erstellen eine Funktion, die entweder eine CSV- oder Excel-Datei liest und die Daten als Array zurückgibt.
<?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"); } } ?>
Definieren Sie Funktionen zum Einfügen von Daten sowohl in MySQL als auch in PostgreSQL. In diesem Beispiel wird davon ausgegangen, dass es sich bei den Daten um ein Array von Arrays handelt, wobei jedes innere Array eine Zeile in der Datenbank darstellt.
<?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>"; } ?>
Laden Sie Daten aus der Datei und übergeben Sie sie dann an jede Funktion, um sie sowohl in MySQL als auch in PostgreSQL einzufügen.
<?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(); } ?>
Dieses Skript liest die Daten aus der angegebenen Datei und fügt sie in beide Datenbanken ein.
Vernetzen Sie sich mit mir: @ LinkedIn und schauen Sie sich mein Portfolio an.
Bitte geben Sie meinen GitHub-Projekten einen Stern ⭐️
Das obige ist der detaillierte Inhalt vonAutomatisierter CSV- und Excel-Datenimport in MySQL- und PostgreSQL-Datenbanken mit PHP. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!