Heim  >  Artikel  >  Datenbank  >  Automatisierter CSV- und Excel-Datenimport in MySQL- und PostgreSQL-Datenbanken mit PHP

Automatisierter CSV- und Excel-Datenimport in MySQL- und PostgreSQL-Datenbanken mit PHP

Susan Sarandon
Susan SarandonOriginal
2024-11-12 17:59:02199Durchsuche

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

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:

Voraussetzungen

  1. Notwendige Bibliotheken installieren:

    • PHPs PDO-Erweiterung für MySQL und PostgreSQL.
    • PHPExcel-Bibliothek (oder PHPSpreadsheet, falls verfügbar, aber wir verwenden PHPExcel, da es besser mit PHP 5.6 kompatibel ist).
  2. Laden Sie die PHPExcel-Bibliothek herunter und fügen Sie sie in Ihr Projektverzeichnis ein.


Schritt 1: Datenbankverbindungen einrichten

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

Schritt 2: Laden Sie Daten aus einer CSV- oder Excel-Datei

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

Schritt 3: Daten an MySQL und PostgreSQL übertragen

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

Schritt 4: Alles zusammenfügen

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

Beispielausführung

  1. Stellen Sie sicher, dass die MySQL- und PostgreSQL-Datenbanken und -Tabellen (your_mysql_table, your_pg_table) eingerichtet sind und die richtigen Spalten haben (Spalte1, Spalte2, Spalte3).
  2. Platzieren Sie Ihre CSV- oder Excel-Datei im angegebenen Pfad ($filePath).
  3. Führen Sie dieses PHP-Skript über die Befehlszeile oder einen Browser aus (falls auf einem Webserver).

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!

Stellungnahme:
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn