Logo Logo
Nazaj na seznam
WEB

Kako izvoziti podatke iz MySQL baze v CSV datoteko s PHP

14. 03. 2026
Kako izvoziti podatke iz MySQL baze v CSV datoteko s PHP

V prejšnji objavi smo pogledali, kako podatke uvoziti, zdaj pa bomo naredili obratno. Izvoz podatkov iz MySQL v CSV je izjemno uporaben za izdelavo varnostnih kopij, poročil ali prenos podatkov med različnimi aplikacijami.

Logika postopka

  • Poizvedba: Najprej z SELECT stavkom pridobimo želene podatke iz tabele.
  • Headers: Brskalniku moramo poslati ustrezne glave (headers), da bo datoteko prepoznal kot CSV in jo ponudil za prenos (download).
  • Zapisovanje: Podatke iz baze pišemo neposredno v izhodni tok (output stream) s pomočjo funkcije fputcsv().

Primer kode za neposreden prenos

Ta skript bo ob zagonu v brskalniku takoj ponudil datoteko izvoz.csv za prenos.

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

// Nastavi ime datoteke in glave za prenos
$filename = "izvoz_podatkov_" . date('Y-m-d') . ".csv";
header('Content-Type: text/csv; charset=utf-8');
header('Content-Disposition: attachment; filename=' . $filename);

// Odpri izhodni tok (output stream)
$output = fopen('php://output', 'w');

// Zapiši naslove stolpcev
fputcsv($output, ['ID', 'Ime', 'Povezava']);

// Pridobi podatke iz baze
$sql = "SELECT id, ime, povezava FROM imena ORDER BY id ASC";
$result = $povezava->query($sql);

if ($result->num_rows > 0) {
    while ($row = $result->fetch_assoc()) {
        fputcsv($output, $row);
    }
}

fclose($output);
$povezava->close();
exit();
?>

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.