En Kommaavgränsade värden ( CSV ) är en textfil som organiserar flera kolumner eller fält med data genom att separera dem med kommatecken . Det är vanligt att exportera kalkylblad , såsom de från Excel , i CSV- format för användning i andra plattformar . Om du vill importera Excel-filer till en MySQL-databas , kan du använda PHP för att bearbeta CSV och skicka innehållet till MySQL-databas . Detta är en tvåstegsprocess. Det första steget innebär att analysera CSV med PHP . Det andra steget är att använda PHP för att kommunicera med MySQL . Instruktioner
1
Exportera CSV -fil från Excel och placera den på den server som kör PHP och MySQL . I Excel , öppna " Arkiv " -menyn , klicka på " Spara som " och sedan " typ " och " CSV ". Ge den nya CSV-fil vilket namn du vill , och när Excel varnar för att du kommer att förlora formatering , gå vidare och acceptera denna varning . Du får denna varning eftersom all text formatering , som fet, kursiv eller färger , inte kan lagras i en textfil .
2
Skapa en variabel i PHP och ställ in sökvägen i CSV-filen på servern. Använd " fopen " PHP-funktionen som en del av den rörliga deklarationen så det kommer att identifiera vilken fil du vill öppna . Detta kan se ut :
$ file = fopen ( " myfile.csv " , " r " ) ;
" R " anger att du öppnar filen för läsning endast
3
Bygg en " tag " loop som kommer att iterera igenom filen rad för rad och läst varje rad i en ny variabel . Använd den standard PHP funktioner " när " och " feof " för att bearbeta dessa rader , och använd " fgetcsv " tolka CSV-filen identifieras av din " fopen " variabel . Denna slinga kan se ut eller börja så här :
medan {
$ csv_line = fgetcsv ( $ file , 1024 ) katalog
Notera numret ( feof ( $ file ) ! ) 1024 , som ingår i " fgetcsv "-funktion. Detta talar om för servern hur mycket data att förvänta en viss linje , i tecken. Detta antal bör vara större än din längsta raden i CSV-filen .
4
Lägg en MySQL Query till " medan " loop , med hjälp av den inbyggda PHP funktioner för databashantering manipulation . Till exempel , kan du använda " mysql_query " -funktion i kombination med MySQL " INSERT " -funktion för att importera CSV- linjen direkt i en tabell . Den " medan " loop kan fortsätta så här :
mysql_query ( " INSERT INTO TableName ( Kolumn1 , Column2 ) VALUES ( $ csv_line [ 0 ] , $ csv_line [ 1 ] ) " ,
}
fclose ( $ file ) ;
Här behandlar vi linjen från CSV filen som den array som det är , med hjälp av lämpliga array index såsom " [ 0 ] " , och sedan avsluta " medan " loop med avslutande klammerparentesen . Slutligen stänger vi den " $ file " variabel som vi tidigare öppnades i början av programmet .
" medan " loop alltså har slutfört processen att analysera den CSV i PHP och sedan skicka den till databasen med en MySQL Query .