Registrovat    Přihlášení
Domů Odkazy Fórum Ke stažení Web hosting Registrace do katalogů
Přihlásit
Jméno:

Heslo:

Pamatuj si mně



Zapomenuté heslo

Nová registrace
Partner a hosting webu
zserver.cz
Spolupráce
Odkazy
česká sociální síť rexVoX.com
Informace a projekty na rodinné domy naleznete v našem blogu.

Navštívit můžete také pasivní rodinné domy - dřevostavby, kde naleznete informace o pasivních stavbách.

Odkazy.
Outlook CRM

Pro efektivní komunikaci i vedení projektů doporučujeme eWay-CRM.

IMac

Potřebujete nový pracovní počítač? Apple iMac bude nejlepší volbou!

Inzerujte zde!

Máte zájem o reklamu? Kupte si textový odkaz na této pozici!



Kategorie a fóra
   Všechny příspěvky (Floyd)




Re: Problém s kódováním v DB
Nováček
Členem od:
9:02 17.4.2008
Skupina:
Registrovaní uživatelé
Příspěvky: 2
Nepřipojen
Tak to mě mrzí, že jsem to psal zbytečně. Začal jsem tady a hledal a hledal a nenašel. Navíc jsem jenom administrátor serveru a o ZenCart vím, jenom to, že existuje. Celý ten obchod je v polštině, a já polsky neumím ani slovo, takže to byla obzvlášť zábavná práce.

Zasláno: 10:10 17.4.2008
Přenos příspěvku do ostatních aplikací Přenos


Problém s kódováním v DB
Nováček
Členem od:
9:02 17.4.2008
Skupina:
Registrovaní uživatelé
Příspěvky: 2
Nepřipojen
Pokud náhodou narazíte na to, že se vám přes veškerou snahu nebudou do databáze ukládat znaky které chcete, ale budou se nahrazovat jinými znaky, pak máte velmi pravděpodobně stejný problém, jako jsem měl já. Pokusím se vám ušetřit pár hodin času.

Můj problém vznikl po přesunu na nový server. Kódování v DB na původním serveru bylo nastaveno na Latin2 (ISO-8859-2) a web je rovněž celý v Latin2. Na původním stroji bylo vše v pořádku, na novém vznikl problém, protože v konfiguraci MySQL serveru je nastavena výchozí znaková sada na CP1250 (Windows-1250).
Vytvořil jsem novou databázi s výchozím kódováním Latin2, provedl dump v latin2:
$ mysqldump obchod -Q --default-character-set=latin2 > obchod.sql

Dále jsem provedl na novém serveru import:
$ mysql -D obchod --default-character-set=latin2 < obchod.sql

Data v MySQL databázi byla korektní (např. v phpMyAdmin bylo všechno O.K.)

Na webu bylo také všechno v pořádku až do okamžiku, než jsem se pokusil přidat nové zboží a v názvu se vyskytovaly znaky, které Latin2 zná, ale Windows-1250 ne. Najednou se místo správného znaku objevil otazník.

Prohledal jsem tedy všechny skripty a naštěstí je celý ZenCart napsán velmi dobře a přehledně, takže stačilo serveru pro komunikaci s DB vnutit to správné kódování. Moje úprava je v souboru: /includes/classes/db/mysql/query_factory.php
Za řádky:
if ($this->link) {
if (@mysql_select_db($zf_database, $this->link)) {
$this->db_connected = true;

stačí doplnit:
// hack for latin2
mysql_query("SET NAMES `latin2`");

Pokud by to náhodu nefungovalo, tak se ještě dají doplnit i další parametry, které MySQL serveru upraví parametry připojení:
mysql_query("SET CHARACTER SET latin2");
mysql_query("SET COLLATION_CONNECTION = `latin2_general_ci`");

Stejným způsobem se dá dosáhnout i toho, že databázi budete mít v UTF8 a web např. ve Windows-1250.

Doufám, že jsem touto kapkou informace pomohl těm, kdo budou v budoucnu řešit stejný problém.

Zasláno: 9:21 17.4.2008
Přenos příspěvku do ostatních aplikací Přenos



 Nahoru




Odkazy



Zen-Cart ke stažení

Vyšel nový Zencart 1.5.0

Originální moduly můžete stahovat na
www.zen-cart.com

Reklama
Nejaktivnější autoři
1 Melodic
Melodic
1002997
2 Kozoroh
Kozoroh
2124
3 JardaR
JardaR
1888
4 garden
garden
1419
5 Nismo
Nismo
1389
6 hbxx 1131
7 jandik01
jandik01
1070
8 PeterB
PeterB
1017
9 Dedek
Dedek
990
10 bambulko
bambulko
775