Nalaganje CSV datoteke v MySQL bazo je uporabna lastnost, še posebej pri uvozu velikih količin podatkov v vašo aplikacijo, kot je to iskalnik ali blog.
1. Razlaga kode:
Koda se osredotoči na:
- Povezavo z bazo MySQL, ki deluje prek mysqli.
- Branje CSV datoteke z uporabo fgetcsv() in vrstično vstavljanje prebranih podatkov v tabelo MySQL.
2. Glavni deli kode:
1. Povezovanje z bazo podatkov ($povezava)
- Tukaj ustvarite povezavo z bazo MySQL. Preverite, ali povezava uspe, in prikažete ustrezno napako, če povezava ne deluje.
2. Branje CSV datoteke
- Odprete datoteko z imenom imeDatoteke.csv za branje.
- Prvo vrstico (fgetcsv($handle, 10000, ",")) uporabljate za preskok (predvidevamo, da vsebuje imena stolpcev).
3. Vstavljanje podatkov v MySQL
- V vsaki ponovitvi zanke (while) se prebere posamezna vrstica iz CSV datoteke. Predvideva se, da CSV vsebuje stolpce, ki so ustrezno vezani na tabelo (imena) v vaši bazi.
4. Zapiranje datoteke in povezave
- Po uspešnem uvozu (fopen in mysqli) zaprete tako datoteko kot bazo.
<?php
$streznik = "localhost";
$uporabnik = "root";
$geslo = "";
$baza_podatkov = "ime baze podatkov";
// Ustvari povezavo
$povezava = new mysqli($streznik, $uporabnik, $geslo, $baza_podatkov);
// Preveri povezavo
if ($povezava->connect_error) {
die("Povezava ni uspela: " . $povezava->connect_error);
}
// Pot do CSV datoteke
$csvFile = 'imeDatoteke.csv';
// Odpri CSV datoteko za branje
if (($handle = fopen($csvFile, "r")) !== FALSE) {
// Preskoči prvo vrstico, če vsebuje imena stolpcev
fgetcsv($handle, 10000, ",");
// Preberi vsako vrstico CSV datoteke
while (($data = fgetcsv($handle, 1000, ",")) !== FALSE) {
$ime = $data[0];
$povezava = $data[1];
// Vstavi podatke v tabelo
$sql = "INSERT INTO imena (ime, povezava) VALUES ('$ime', '$povezava')";
if (!$conn->query($sql)) {
echo "Napaka: " . $sql . "<br>" . $conn->error;
}
}
fclose($handle);
}
$conn->close();
echo "Uvoz končan.";
$streznik = "localhost";
$uporabnik = "root";
$geslo = "";
$baza_podatkov = "ime baze podatkov";
// Ustvari povezavo
$povezava = new mysqli($streznik, $uporabnik, $geslo, $baza_podatkov);
// Preveri povezavo
if ($povezava->connect_error) {
die("Povezava ni uspela: " . $povezava->connect_error);
}
// Pot do CSV datoteke
$csvFile = 'imeDatoteke.csv';
// Odpri CSV datoteko za branje
if (($handle = fopen($csvFile, "r")) !== FALSE) {
// Preskoči prvo vrstico, če vsebuje imena stolpcev
fgetcsv($handle, 10000, ",");
// Preberi vsako vrstico CSV datoteke
while (($data = fgetcsv($handle, 1000, ",")) !== FALSE) {
$ime = $data[0];
$povezava = $data[1];
// Vstavi podatke v tabelo
$sql = "INSERT INTO imena (ime, povezava) VALUES ('$ime', '$povezava')";
if (!$conn->query($sql)) {
echo "Napaka: " . $sql . "<br>" . $conn->error;
}
}
fclose($handle);
}
$conn->close();
echo "Uvoz končan.";