Heim > Datenbank > MySQL-Tutorial > 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
Freigeben: 2024-11-12 17:59:02
Original
262 Leute haben es durchsucht

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());
}
?>
Nach dem Login kopieren

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");
    }
}
?>
Nach dem Login kopieren

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>";
}
?>
Nach dem Login kopieren

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();
}
?>
Nach dem Login kopieren

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!

Quelle:dev.to
Erklärung dieser Website
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
Neueste Artikel des Autors
Beliebte Tutorials
Mehr>
Neueste Downloads
Mehr>
Web-Effekte
Quellcode der Website
Website-Materialien
Frontend-Vorlage