Sådan bruges PHP Script importeres CSV data Into MySQL

October 27

Sådan bruges PHP Script importeres CSV data Into MySQL


Import af CSV data i MySQL open source-database kan være udfordrende. Folk foretrækker ofte at organisere oplysningerne i regneark, mens de skriver det, men når de er gjort, skal de importere den i MySQL, en besværlig opgave at gøre i hånden. En enkel måde at omgå dette problem er at skabe en PHP script, der automatisk importerer alle data.

Instruktioner

1 Åbn CSV-fil, du ønsker at åbne i en teksteditor som Notesblok og undersøge filens format. Specifikt bemærke, hvad tegn bruges som separator mellem felterne. For eksempel, hvis CSV-filen indeholder teksten "John, Smith, 6; 58" Bemærk, at separatoren er semikolon ( ";").

2 Kontroller, om den første linje i filen indeholder navnene på felter, der også vil findes i databasen. For eksempel, hvis hver linje indeholder en persons fornavn, efternavn, højde og alder, skal du sørge for den første række indeholder den relevante kolonne overskrift, såsom "fornavn, efternavn, højde, alder". Hvis den ikke findes, eller det ikke passer felterne i databasen, skal du rette det.

3 Opret MySQL tabel, CSV-filen vil blive importeret til, hvis den ikke allerede findes. Hvis du ikke er sikker på, hvordan du gør dette, konsultere afsnittet Ressourcer i denne artikel. Sørg for, at navnene på felterne i MySQL tabellen matcher dem i CSV-filen.

4 Kopier PHP script nedenfor ind i en teksteditor som Notesblok, og indtast din database oplysninger i den anden linje. Skift de aktiverede ord at afspejle dine oplysninger. For eksempel, fjern "USERNAME" og indtaste dit eget brugernavn. Gem filen som en .php fil. I Notepad gøres dette ved at trykke på "File" og derefter "Gem som" på den øverste menubjælke, at vælge "alle filer" i drop-down listen mærket "Gem som type" og trykke på "Save".

Her er koden for dig at kopiere:

<? Php

$ DbInfo = array ( 'hostname' => 'HOSTNAME', 'dbname' => 'DB_NAME', 'username' => 'USERNAME', 'password' => 'PASSWORD', 'tabelnavn' => 'TABLE_NAME «) ;

fwrite (STDOUT, "Indtast venligst fuld sti til CSV-fil: \ n");

$ Fullpath = fgets (STDIN);

fwrite (STDOUT, "Indtast feltet separator: \ n");

$ Sep = fgets (stdin);

$ Første = true;

if (($ håndtere = fopen ($ fullpath, "r")) === FALSE) die ( "Kunne ikke åbne CSV-filen, du indtastede");

for ($ i = 0; ($ data = fgetcsv ($ håndtag, 0, $ SEP)) == false;! $ i ++) {

$ Num = count ($ data);

if ($ først) {

if ($ num == 0 || ($ num == 1 && $ data [0] == null)) die ( "CSV-fil skal indeholde mindst ét ​​felt!");

$ TotalRows = $ num;

$ FieldNames = $ data;

$ Første = false;

} Else {

if ($ num = $ totalRows!) die ( "Række indeholder ikke det påkrævede antal felter.");

$ værdier [$ i] = $ data;

}}

fclose ($ håndtag);

$ Con = mysql_connect ($ dbInfo [ 'hostname'], $ dbInfo [ 'username'], $ dbInfo [ 'password']) or die ( 'Kunne ikke forbinde: ". Mysql_error ());

mysql_select_db ($ dbInfo [ 'dbname'], $ con);

foreach ($ værdier som $ v) {

foreach ($ v som & $ i) {

$ I = mysql_real_escape_string ($ i);

mysql_query ( "INSERT INTO". $ dbInfo [ 'tabelnavn']. "(". implodere ( ',', $ fieldNames). «) VALUES ( '". implodere ( "', '", $ v). "' ) ");

}}

mysql_close ($ con);

?>

5 Åbn kommandolinjen. I Windows, gøres dette ved at trykke på knappen Start, vælge "Alle programmer" og derefter "Tilbehør" og trykke på "Command Prompt". Indtast stien til dit PHP eksekverbare og stien til PHP script til at køre det; for eksempel, "C: \ PHP5 \ php.exe" C: \ PHP-scripts \ script.php " '. Indtast den fulde sti til CSV-filen, når du bliver bedt om af scriptet og vente på scriptet til at køre. Dette kan tage lidt tid. Hvis der opstår fejl, skal du sørge fulgt alle trinene rigtigt.


relaterede artikler