Slik importerer CSV-filer til MySQL ved hjelp av PHP

Kommaseparert (CSV) format brukes til å lage tekstfiler med tabelldata. Den brukes av adressebok, regneark og database programmer til utgangsdata i et format som kan leses av et annet program. Hver linje representerer en bestemt post. Innen hver post er atskilt med komma. PHP programmeringsspråk kan brukes til å plassere innholdet i en CSV-fil til en matrise. Matrisen blir så sendt til MySQL database. Hvert felt er satt inn i en spesiell kolonne i tabellen.

Bruksanvisning

1 Åpne en tom tekstfil i en tekst editor.

2 Skriv inn linjen

<? Php

å starte PHP script.

3 Skriv linjene

$ Hostname = "localhost";

$ Db_name = "eksempel";

$ Table_name = "test";

$ Username = "brukernavn";

$ Passwd = "passord";

$ F_separator = ",";

$ L_separator = "\ n";

$ Filename = "filename.csv";

å skape faktorene i manuset. Erstatt verdiene av variablene med riktig informasjon for databasen.

4 Skriv linjene

if (! file_exists ($ filnavn)) {

echo "File not found. Stopping script.".PHP_EOL;

exit;

}

For å sjekke om filen finnes. Hvis filen ikke eksisterer linjen "Fil ikke funnet. Stopper script." blir skrevet til skjermen og scriptet vil ende.

5 Skriv linjene

$ fil = fopen ($ filnavn, "r") or die ( "Kan ikke åpne filen Stopper script.". PHP_EOL.);

For å åpne filen. Hvis filen ikke kan åpnes, linjen "Kan ikke åpne filen. Stopper script." blir skrevet til skjermen og scriptet vil ende.

6 Skriv inn linjen

$ Size = filstørrelse ($ filnavn) or die ( "Filen er tom" .PHP_EOL);

få størrelsen på filen. Hvis filen er tom, linjen "Fil er tom." blir skrevet til skjermen og scriptet vil ende.

7 Skriv linjene

$ Innhold = fread ($ fil, $ størrelse);

fclose ($ file);

å lese innholdet i filen inn i "$ innhold" array og lukke filen.

8 Skriv linjene

$ Con = @mysql_connect ($ hostname, $ brukernavn, $ passwd) or die (mysql_error ());

@mysql_select_db ($ db_name) or die (mysql_error ());

for å koble til databasen og velg databasetabell. Hvis skriptet ikke kan koble til databasen, vil MySQL feil skrives til skjermen og scriptet vil ende.

9 Skriv inn følgende linjer

$ linjer = 0;

$ L_array = array ();

å skape de variablene som brukes til å dele hver linje av CSV-filen inn i separate felt.

10 Skriv linjene

foreach (split ($ l_separator, $ innhold) som $ linje) {

$ linjer ++;

$ Linje = trim ($ linje, "\ t");

$ Linje = str_replace ( "\ r", "", $ linje);

$ Linje = str_replace ( " '", "\'", $ linje); // Escape spesialtegn

$ Linearray = eksplodere ($ f_separator, $ linje);

$ Linemysql = implode ( "", "", $ linearray);

å skille hver linje i feltene som vil bli lagt til databasen.

11 Skriv linjene

$ Query = "INSERT INTO $ table_name VALUES ( '$ linemysql');";

@mysql_query ($ query);}

for å sende data til databasen.

12 Skriv linjene

mysql_close ($ con);

?>

å lukke MySQL tilkobling og avslutte PHP script.