Een CSV verwerken in de database
Ik ben van plan om voor mijn site een systeem te maken waarmee ik een *.csv-bestand kan inlezen en kan verwerken naar de database.
Nu vroeg ik me af hoe ik dit het beste zou kunnen doen?
Nu is dit mijn idee: na uploadformulier plaats ik de CSV-file in een buffermap /csv-buffer. En lees hem daar weer uit met http://nl2.php.net/fgetcsv.
Is dit een goede manier, of kan dit veel makkelijker zonder gebruik van een tijdje buffermap waar ik de CSV naartoe kopieeer?
Gewijzigd op 16/10/2010 11:29:14 door - Ariën -
Code (php)
1
2
3
4
5
2
3
4
5
load data local infile 'jouwbestand.csv' into table jouwtabel
fields terminated by ','
enclosed by '"'
lines terminated by '\n'
(Naam, Stad, Omschrijving, etc)
fields terminated by ','
enclosed by '"'
lines terminated by '\n'
(Naam, Stad, Omschrijving, etc)
Gewijzigd op 16/10/2010 12:05:52 door Niels K
Ik neem aan dat dat ik dan wel het volledige pad op moet geven dan bij jouwbestand.csv.
Toevoeging op 16/10/2010 13:39:50:
Overigens, kan je ook met MySQL data overschrijven?
Ik wil elke maand een nieuwe CSV importeren, waarbij de data gewijzigd kan zijn.
Iemand die hier antwoord op heeft op beide vragen?
http://dev.mysql.com/doc/ ?
Gewijzigd op 07/11/2010 19:31:30 door Martijn B
Martijn B op 07/11/2010 19:28:46:
mysql.com?
Heb je ook geen minder UTFS'erig antwoord, want daar had ik al op gekeken.
Of wou je soms niks in je schoentje hebben met Sinterklaas ;-)?
http://dev.mysql.com/doc/refman/5.0/en/load-data.html
Quote:
The REPLACE and IGNORE keywords control handling of input rows that duplicate existing rows on unique key values:
...
If you specify REPLACE, input rows replace existing rows. In other words, rows that have the same value for a primary key or unique index as an existing row. See Section 12.2.7, “REPLACE Syntax”.
...
...
If you specify REPLACE, input rows replace existing rows. In other words, rows that have the same value for a primary key or unique index as an existing row. See Section 12.2.7, “REPLACE Syntax”.
...
Is dat wel je bedoelt?
Gewijzigd op 07/11/2010 19:36:09 door Martijn B
Ik ga er in testomgeving mee experimenteren.
Als je dus een id hebt dan hoef je alleen nog REPLACE in je query te zetten. Als ik het goed begrijp.
Dat ga ik eens proberen :-)