Importeren van CSV -gegevens in de MySQL open source database kan een uitdaging zijn . Mensen vaak de voorkeur aan het organiseren van de informatie in spreadsheets terwijl ze schrijven , maar zodra ze klaar zijn moeten ze het importeren in MySQL , een lastige taak te doen met de hand. Een eenvoudige manier om dit probleem te omzeilen is om een PHP- script dat automatisch importeert alle gegevens te maken . Instructies 1 Open het CSV -bestand dat u wilt openen in een teksteditor zoals Kladblok en onderzoekt formaat van het bestand . Specifiek , noteren wat karakter wordt gebruikt als scheidingsteken tussen de velden . Bijvoorbeeld, als het CSV-bestand bevat de tekst " John; Smith , 6 , 58 " mee dat de afscheider is de puntkomma ( " ; " ) . Controleren 2 of de eerste regel van het bestand bevat de namen van de velden die ook in de database . Als bijvoorbeeld elke regel bevat de voornaam van een persoon , achternaam , lengte en leeftijd , zorg ervoor dat de eerste rij bevat de juiste kolomkop , zoals " voornaam , achternaam , hoogte , leeftijd " . Als het niet bestaat , of het niet overeenkomt met de velden in de database , moet je corrigeren . 3 Maak de MySQL tabel die het CSV-bestand wordt geïmporteerd om , als het nog niet bestaat . Als u niet zeker weet hoe u dit moet doen , raadpleegt u het hoofdstuk middelen van dit artikel . Zorg ervoor dat de namen van de velden in de MySQL tabel overeenkomen met die in het CSV-bestand . Copy 4 de PHP-script hieronder in een teksteditor zoals Kladblok en voer uw database informatie in de tweede lijn . Verander de woorden in hoofdletters om uw informatie weer te geven . Bijvoorbeeld , verwijder " GEBRUIKERSNAAM " en voer uw eigen gebruikersnaam . Sla het bestand op als een . Php-bestand . In Kladblok wordt dit gedaan door op " File " en vervolgens " Opslaan als" op de bovenste menubalk , te kiezen voor " Alle bestanden " in het drop - down lijst gemarkeerd " Opslaan als type: " . En druk op " Opslaan " Hier is de code voor u te kopiëren : ? $ dbInfo = array ( ' hostName ' = > ' HOSTNAME ' , ' dbName ' = > ' DB_NAME ' , ' username ' = > ' gEBRUIKERSNAAM ' , ' password ' = > ' Wachtwoord ' , ' tableName ' = > ' TABLE_NAME ' ) ; fwrite ( STDOUT , "Voer het volledige pad naar CSV file : \\ n " ) ; $ fullpath = fgets ( STDIN ) ; fwrite ( STDOUT , " Vul het veld separator : \\ n " ) ; $ september = fgets ( STDIN ) ; $ eerste = true; if ( ( $ handle = fopen ( $ fullpath , " r " ) ) === FALSE ) sterven ( " Kan Open het CSV-bestand die u hebt ingevoerd " ) ; for ($ i = 0 ; ( $ data = fgetcsv ( $ handle , 0 , $ september ) ) == FALSE ; ! $ i + + ) { $ num = count ( $ data ) ; if ( $ eerste ) { if ( $ num == 0 | | ( $ num == 1 && $ data [ 0 ] == null ) ) sterven ( " CSV-bestand moet ten minste een veld bevatten ! " ) ; $ totalRows = $ num ; $ veldnamen = $ data ; $ eerste = false; } else { if ( $ num = $ totalRows ! ) sterven ( " Rij niet het vereiste aantal velden niet bevatten . " ) ; $ waarden [ $ i ] = $ data ; } } fclose ( $ handle ) ; $ con = mysql_connect ( $ dbInfo [ ' hostName ' ] , $ dbInfo [ ' username' ] , $ dbInfo [ ' password ' ] ) or die ( ' Kan niet verbinden : ' . mysql_error ( ) ) ; mysql_select_db ( $ dbInfo [ ' dbName ' ] , $ con ) ; foreach ( $ waarden als $ v ) { foreach ( $ v zo & $ i ) { $ i = mysql_real_escape_string ( $ i ) ; mysql_query ( " INSERT INTO " . $ dbInfo [ ' tableName ' ] . " ( " . imploderen ( ' , ' , $ veldnamen ) . " ) VALUES ( ' " . implode ( " " , " " , $ v ) . " ' ) " ) ; } } mysql_close ( $ con ) ; ? > 5 Open de command line . In Windows , wordt dit gedaan door het indrukken van de knop Start , te kiezen voor " Alle Programma's" , en dan " Accessoires" en drukken op " Command Prompt " . Voer het pad naar uw PHP executable en het pad naar de PHP-script om het uit te voeren , bijvoorbeeld ' C : \\ PHP5 \\ php.exe " C : \\ PHP Scripts \\ script.php " ' . Geef het volledige pad naar het CSV-bestand wanneer daarom wordt gevraagd door het script en wachten tot het script te draaien . Dit kan enige tijd duren . Wanneer zich fouten voordoen , zorg ervoor dat u alle stappen goed gevolgd.
|