Autor | Zpráva | ||
---|---|---|---|
UrbiCZ Profil |
#1 · Zasláno: 18. 11. 2012, 13:05:25
Čau. Jak řešíte vkládání několika tisíc řádků do DB? Vytvořil jsem si XML parser a chci rozparsovaná data vložit do DB. Je to několik tisíc záznamů, ale vloží se mi jich vždy jen několik set. Díky...
$xml = simplexml_load_file("filename.xml"); foreach($xml->group as $id){ $id_i = $id["id"]; $kod = $id["kod"]; $nadrizena = $id["nadrizena"]; foreach($id->nazev as $nazev){ $nazev_i = $nazev; } foreach($id->seo as $seo){ $seo_i = $seo; } foreach($id->cool as $cool){ $cool_i = $cool; } mysql_query("INSERT INTO kotel2(group_id, kod, nadrizena, nazev, seo, cool) VALUES($id_i,$kod,$nadrizena,'$nazev_i','$seo_i','$cool_i')"); } |
||
Tori Profil |
#2 · Zasláno: 18. 11. 2012, 13:17:45 · Upravil/a: Tori
UrbiCZ:
Všechny dotazy proběhnou bez chyby? Pokud nepoužíváte escapování, tak vám např. selžou všechny inserty, kde některá hodnota obsahuje apostrof. Jinak šlo by to o něco zrychlit vícenásobnými inserty. UrbiCZ: „Je to několik tisíc záznamů, ale vloží se mi jich vždy jen několik set.“ A vlastně se ptáte na příčinu, nebo ji znáte? Mohl by to být např. nízký limit na dobu provádění skriptu (viz funkce set_time_limit). |
||
UrbiCZ Profil |
#3 · Zasláno: 18. 11. 2012, 14:59:52
Apostrofy ve vkládaných hodnotách nikde nejsou, takže escapování není potřeba. Co myslíte těmi vícenásobnými inserty? Nějaký příklad by nebyl?
Když vkládám do DB názvy s diakritikou, tak se do DB nevloží, pouze názvy bez diakritiky. Pokud ovšem změním kódování na UTF8, tak se vloží, ale se špatným zobrazením znamének s diakritikou. Když však poté provedu selekci dat do souboru, tak se zase zobrazí správně. :) Tohle vážně nechápu. |
||
Tori Profil |
UrbiCZ:
„Co myslíte těmi vícenásobnými inserty?“ Více řádků jedním dotazem: INSERT INTO tabulka (col1, col2) VALUES (1,2), (3,4), (5,6) ... , postupně skládaným skriptem.
„Pokud ovšem změním kódování na UTF8“ Kde - před inserty použijete SET NAMES utf8 , nebo někde jinde?
„, tak se vloží, ale se špatným zobrazením znamének s diakritikou.“ Kde se to špatně zobrazí? |
||
UrbiCZ Profil |
#5 · Zasláno: 18. 11. 2012, 15:55:42
Po provedení příkazu
INSERT INTO se prostě špatně zobrazí diakritika jednotlivých záznamů v DB. SET NAMES utf8 jsem už zkoušel také, ale nepomohlo.
|
||
Tori Profil |
#6 · Zasláno: 18. 11. 2012, 16:06:51
UrbiCZ:
XML soubor je uložený v utf8? Tenhle skript taky? |
||
UrbiCZ Profil |
#7 · Zasláno: 18. 11. 2012, 21:55:56
No soubor XML je ulozen v ISO 8859-2.
|
||
Kajman Profil |
#8 · Zasláno: 18. 11. 2012, 21:59:20
Pokud to simplexml nepřevede, tak dejte
set names latin2 |
||
Časová prodleva: 13 let
|
0