Autor | Zpráva | ||
---|---|---|---|
tatyalien Profil * |
#1 · Zasláno: 8. 6. 2009, 16:56:43
Dobrý den,
mám dotaz, snažím se dostat data do mysql z csv oddělené středníkem, data tam dostanu, ale stane se mě u "některých" že se data rozseknout a vložej jako 2 záznamy a to pak rozhodí strukturu tabulky. Existuje nějaké ošetření, nebo kontrola, zda se daný řádek vložil správně? Soubor, který tahám je velký, má cca 9megabajtů - dtb webového obchodu (mám již na správu obchodu excelovské řešení + makra, ale to trvá kolem 10-20min, chtěl bych to zkusit pomocí php a mysql). Popřípadě pokud máte nějaké elegantní řešení jak převzít data z csv do tabulky nebudu se tomu bránit. používám kód viz přiložené soubory php skrypt - uložený do txt Struktura dtb Zdrojový soubor na vložení do dtb |
||
TomášK Profil |
#2 · Zasláno: 8. 6. 2009, 18:03:49 · Upravil/a: TomášK
Já bych řekl, že bude problém s kódováním, ale jen tipuju. Koukni se na
LOAD DATE INFILE |
||
tatyalien Profil * |
#3 · Zasláno: 8. 6. 2009, 22:57:35
Díky, už to zkouším, ale mám s tím trochu problémy... hold zatím php tolik neovládám...
tohle mě šlape... $sql = "LOAD DATA LOCAL INFILE 'C:/xampp/htdocs/www/import_pokus/malo_dat.csv' INTO TABLE tabulka FIELDS TERMINATED BY ';' "; ale v csv jsou data, které obsaují jak : ", \, ' když chci z toho vymlátit zatím jen blbý \ $sql = "LOAD DATA LOCAL INFILE 'C:/xampp/htdocs/www/import_pokus/malo_dat.csv' INTO TABLE tabulka FIELDS TERMINATED BY ';' ENCLOSED BY '\' ESCAPE BY '\\' LINES TERMINATED BY '\r\n'"; tak mě to nefachá... asi jsem blbej, ale netuším jak to udělat :-( |
||
TomášK Profil |
#4 · Zasláno: 9. 6. 2009, 00:08:39 · Upravil/a: TomášK
LOAD DATA INFILE '/tmp/src.csv' INTO TABLE tabulka CHARACTER SET 'cp1250' FIELDS TERMINATED BY ';' OPTIONALLY ENCLOSED BY '"' ESCAPED BY '"' LINES TERMINATED BY '\r\n' IGNORE 1 LINES - OPTIONALLY, protože ne všechny sloupce jsou uzavřené v uvozovkách (prázdné nejsou), možná to tam být nemusí - ENCLOSED BY - jsou uzavřené v uvozovkách - ESCAPED BY - znak, který je před uvozovkama, které neukončují záznam, jsou opět uvozovky - IGNORE 1 LINES - hlavičku nechcem - import hlásí warningy, že jsou sloupce příliš malé - některé záznamy mají víc než 1024 znaků v popisu a ořežou se |
||
tatyalien Profil * |
#5 · Zasláno: 9. 6. 2009, 18:15:46
Tak jsem tohle už rozchodil, rozchodil jsem i SELECT * INTO OUTFILE... ale ten neexportuje jmena sloupců.
Když jsem si chtěl napsat vlastní exportační cyklus, tak mám problémy, když v dtb mám v textu středník, a uvozovky, tak v exportovaném souboru mě to pak rozseká zase špatně sloupce (csv oddělené středníkem), divný je, že select * into outfile to dokáže nějak obejít.. :-( |
||
Časová prodleva: 15 let
|
0