A kommadelte ( CSV ) er en tekstfil som organiserer flere kolonner eller felt av data ved å skille dem med komma. Det er vanlig å eksportere regneark, slik som de fra Excel , i CSV- format for bruk i andre plattformer . Hvis du ønsker å importere Excel-filer i en MySQL database, kan du bruke PHP til å behandle CSV og sende innholdet til MySQL database. Dette er en to- trinns prosess . Det første trinnet innebærer analyse av CSV med PHP. Det andre trinnet er å bruke PHP til å kommunisere med MySQL. Instruksjoner
en
Eksporter CSV fil fra Excel og plassere den på server som kjører PHP og MySQL. I Excel , åpne " File "-menyen , klikk "Lagre som", deretter "type " og " CSV ". Gi den nye CSV -filen det navnet du ønsker , og når Excel advarer om at du vil miste formatering , gå videre og godta denne advarselen. Du mottar denne advarselen fordi enhver tekst formatering, som fet, kursiv eller farger , ikke kan lagres i en tekstfil .
2
Lag en PHP variabel og sette den til filbanen for CSV-filen på serveren. Bruk " fopen " PHP-funksjonen som en del av variabeldeklarasjon så det vil identifisere hvilken fil du vil åpne. Dette kan se ut : en
$ fil = fopen ( " myfile.csv " , "r ");
"r " angir at du åpner filen for lesing bare
3
Bygg en "mens " loop som vil reagere gjennom filen linje for linje og lese hver linje inn i en ny variabel . Bruk standard PHP -funksjoner "mens " og " feof " for å behandle disse linjene , og bruk " fgetcsv " for å analysere CSV -filen identifisert med " fopen " variable . Denne sløyfen kunne se eller begynne som dette : en
mens {
$ csv_line = fgetcsv ( $ fil , 1024 )
Note nummeret ( feof ( $ fil) ! ) 1024 , som er inkludert i " fgetcsv "-funksjon. Dette forteller serveren hvor mye data du kan forvente på en gitt linje, i tegn. Dette nummeret må være større enn den lengste linjen i CSV-filen .
4
Legg til en MySQL spørring til " mens " loop , ved hjelp av den innebygde PHP funksjoner for database manipulasjon. For eksempel kan du bruke " mysql_query "-funksjonen i kombinasjon med MySQL "SETT INN "-funksjon for å importere CSV linjen direkte inn i en tabell . Den "mens " loop kan fortsette slik:
mysql_query ( " INSERT INTO tablename ( COLUMN1 , COLUMN2 ) VALUES ( $ csv_line [ 0 ] , $ csv_line [ 1 ] )";
}
fclose ( $ fil) ;
Her behandler vi linjen fra CSV -filen som tabellen som det er, ved hjelp av riktig rekke indekser som " [ 0 ] " , og deretter avslutte "mens " loop med den avsluttende klammeparentes . slutt lukker vi " $ file " variable som vi tidligere har åpnet i begynnelsen av programmet .
"mens " loop har dermed fullført prosessen med analyse av CSV i PHP , og deretter sende den til databasen med en MySQL spørring .