Logo Logo
Nazaj na seznam
WEB

Kako uvoziti CSV datoteko v MySQL bazo s PHP

14. 03. 2026
Kako uvoziti CSV datoteko v MySQL bazo s PHP

Uvoz podatkov iz CSV datotek v bazo je ena najpogostejših nalog pri upravljanju spletnih aplikacij, blogov ali trgovin. Čeprav lahko uporabimo phpMyAdmin, nam lasten PHP skript omogoča avtomatizacijo in boljšo kontrolo nad podatki.

Logika postopka

Skript deluje v nekaj preprostih korakih:

  • Povezava: Vzpostavimo stik z MySQL strežnikom preko razreda mysqli.
  • Branje: S funkcijo fgetcsv() beremo datoteko vrstico po vrstico.
  • Varnost: Uporabimo pripravljene poizvedbe (Prepared Statements), ki poskrbijo, da so posebni znaki v podatkih varno shranjeni.

Izboljšana koda (Priporočljivo)

Spodnja različica uporablja varnostne protokole, ki preprečujejo SQL injekcijo in hitreje obdelujejo velike datoteke.

<?php
$streznik = "localhost";
$uporabnik = "root";
$geslo = "";
$baza_podatkov = "ime_tvoje_baze";

// Ustvari povezavo
$povezava = new mysqli($streznik, $uporabnik, $geslo, $baza_podatkov);

// Preveri povezavo
if ($povezava->connect_error) {
    die("Povezava ni uspela: " . $povezava->connect_error);
}

$csvFile = 'podatki.csv';

// Preveri, ali datoteka obstaja
if (!file_exists($csvFile)) {
    die("Napaka: CSV datoteka ne obstaja.");
}

// Odpri CSV datoteko za branje
if (($handle = fopen($csvFile, "r")) !== FALSE) {
    // Preskoči prvo vrstico (glava z imeni stolpcev)
    fgetcsv($handle, 10000, ",");

    // Pripravi poizvedbo (Prepared Statement)
    $stmt = $povezava->prepare("INSERT INTO imena (ime, povezava) VALUES (?, ?)");

    // Preberi vsako vrstico CSV datoteke
    while (($data = fgetcsv($handle, 10000, ",")) !== FALSE) {
        $ime = $data[0];
        $povezava_pot = $data[1];

        // Poveži parametre in izvedi
        $stmt->bind_param("ss", $ime, $povezava_pot);
        if (!$stmt->execute()) {
            echo "Napaka pri vrstici: " . $stmt->error . "&lt;br&gt;";
        }
    }

    $stmt->close();
    fclose($handle);
}

$povezava->close();
echo "Uvoz uspešno končan.";
?>

Hvala za obisk! Dodajam politiko zasebnosti.

© 2024 Vse pravice pridržane.

Vam je koda pomagala? Če želite podpreti moj trud pri pripravi vodičev in vzdrževanju strani, mi lahko namenite donacijo za kavo.