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.