| mysql + sumniki | ||
|---|---|---|
|
samc
22. feb 2008 04:02:57
Pridružen od: 12. apr 2007 543 objav 78 5 1 |
#1
fantje / deklice / strokovnjaki ... pomagajte mi:)
|
|
|
HeXeR
22. feb 2008 08:02:58
Pridružen od: 13. dec 2006 3268 objav 122 22 5 |
#2
2.) Glede tabel ... 1.) Za baze pa, hmm lahko si vse shraniš v SQL file pa potem z beležko popraviš znake in nabore, ali pa če si spišeš/najdeš php skripto, ki bi šla vse tabele skozi in popravila charsete in seveda vsebino polij. First rule of business, protect your investment.
|
|
|
Bakterija.com
22. feb 2008 09:02:19
Pridružen od: 11. maj 2007 972 objav 2 0 0 |
#3
Jaz ne bi preveč kompliciral. Prenesi bazo v excel, in poženi Search & Replace :) "čudnih" znakov bi moral imeti natanko 6 (ŽČŠžčš) kar ti ne bo vzelo veliko časa za zamenjavo. To bi jaz naredil :) odvisno kaj ti je lažje. |
|
|
S.C
22. feb 2008 11:02:11
Pridružen od: 26. jan 2008 30 objav 0 0 0 |
#4
Zakaj pa ravno Excel ? A nebo vredu če shrani v .sql pa odpre z kakšnim text editorjem in zamenja to kar mu ni všeč. :) |
|
|
Preseren
22. feb 2008 19:02:13
Pridružen od: 14. mar 2007 3875 objav 2327 338 98 |
#5
pri excelu boš vejerno imel probleme, zaradi kodne tabele, vsaj meni se je to zdaj ravno dogajalo, kosem podatke iz HTML-ja metal v bazo. Zato je vejerno najboljše kakšen text urejevalnik, ki ti omogoča nastavitev kodne tabele (charseta, upam da prav prevajam). Jaz uporabljam wordpad2 za to. |
|
|
HeXeR
22. feb 2008 19:02:25
Pridružen od: 13. dec 2006 3268 objav 122 22 5 |
First rule of business, protect your investment.
|
|
|
boilers
22. feb 2008 19:02:50
Pridružen od: 6. sep 2006 1957 objav 695 62 2 |
||
|
Bakterija.com
22. feb 2008 21:02:25
Pridružen od: 11. maj 2007 972 objav 2 0 0 |
#8
Meni normalno deluje izvoz v excel in nato nazaj v bazo, res pa je da se da narediti tudi drugače. |
|
|
Preseren
22. feb 2008 22:02:00
Pridružen od: 14. mar 2007 3875 objav 2327 338 98 |
||
|
Vini
22. feb 2008 22:02:36
Pridružen od: 1. sep 2006 6612 objav 5234 611 56 |
#10
samc me je prosil, da mu pomagam pri selitvi, danes sem si vzel cas in eno domeno, ki tece na phpLD, sva ze resila. Za vsak primer, ce bo se kdo kdaj imel tak problem, vam povem kje ta je in kako ga lahko resite. phpLD sem sicer danes prvic videl od blizu, pa ne vem, kdo je kriv za tabele v latin1 charsetu, phpLD ali cpanel, nisem raziskoval kako poteka instalacija, predvidevam pa, da bi znal biti kriv kar phpLD. Vsekakor pa naslednjic ob instalaciji preverite, ce imate tabele z definiranim charsetom utf8 in ne latin1 ali celo kaj tretjega. Problem je namrec v tem, da ocitno tisti, ki so phpLD napisali, predvidevajo, da je v MySQL nastavljen default client encoding utf8, pa se jim ocitno nikakor ne ljubi tega zagotoviti ob vsaki povezavi na streznik (vsaj v verziji 3.2.0, ki jo uporablja samc). Problem lahko resite tako, da nastavite default client encoding na utf8, vendar v tem primeru tvegate, da se bo zmesalo kaksni drugi skripti, pa se verjetno vas vecina nima ravno dostopa do konfuguracij MySQL streznika. Ta moznost torej skoraj v vsakem primeru odpade. Druga moznost je rocni update skripte, naslednji del kode v datoteki init.php: spremenite v: S tem zagotovite, da streznik ve, da se z vami/skripto (clientom) pogovarja v utf8 character setu (za vedozeljne malo vec branja). S tem sicer se nismo resili problema podatkov, ki so v napacnih tabelah zapisani v napacnem charsetu. Naredili bomo mysql dump, za katerega bomo poskrbeli, da se bo client na streznik priklopil z encodingom latin1, kar bo povzrocilo, da bomo dobili v dumpu sicer pravilno utf8 kodirane stringe, ki so bili pac zapisani v latin1 tabelah. Zakaj je imel samc probleme s prenosom? Dump je delal iz phpMyAdmina, kjer je pravilno nastavil client encoding na utf8, kar je seveda povzrocilo, da je streznik mislil, da mora iz latin1 character seta podatke pretvoriti v utf8, kar se prej ob streznikovi predpostavki, da se pogovarja s clientom, ki se pogovarja v enakem character setu, seveda ni dogajalo in je skripta navidezno celo pravilno delovala. Dump sem izvedel takole: Tisti --default-character-set sicer ni ravno potreben, ker je ravno zaradi latin1 character seta nastal problem, pa vseeno. Naslednja stvar, ki sem jo naredil, je ta, da sem povsod, kjer bi dump zelel spet kreirati tabele in polja s charsetom latin1, spremenil v utf8, takole: Tukaj smo se sicer lahko zafrknili, ker se lahko tudi v stringih kje nahaja niz 'latin1', pa predvidevajmo, da se ne, drugace bi morali malo bolj motoviliti. Datoteko phpld-utf8.sql prenesemo na nov streznik in jo uvozimo, takole: V tej dump datoteki se nahaja ena vrstica, ki poskrbi, da mysql client nastavi pravilni client encoding. Ta vrstica je naslednja: Nekaj podobnega smo srecali ze pri "hackanju" phpLDja, kajne? Tisti !40101 je nek MySQLov extension za komentarje, ki povzroci, da se stvari znotraj komentarja vseeno izvedejo kot SQL koda, ce je verzija streznika vecja ali enaka verziji za znakom !, v nasem primeru je to 4.1.1. Tole ni ravno univerzalni recept za vse probleme s charseti v MySQLu, je pa mogoce vsaj nek material za razumevanje in razmisljanje. Naslednja je domena z vBulletinom, porocam o izsledkih in resitvah v naslednjih nekaj dneh :) |
|