< HomePage | Снимки
<- Вторник, 29 Май 2007 | Начална страница | Четвъртък, 31 Май 2007 ->
Сряда, 30 Май 2007

Да не чувам думите - mysql, replication и character set. Това MySQL в комбинация с PHP програмисти дето са го ползвали е лоша-лоша-лоша комбинация. На трима човека ни трябваха повече от 12 часа да вдигнем една толкова яко осрана база данни, че ако опиша какви ги бяха свършили, никой няма да повярва на написаното.

Само ще загатна база с cp1251 кодиране, таблици в utf8, пъхано utf8, репликирано в 1251 на друг сървър. След възтановяване от backup, естествено половината неща се четат (писаните на 1251), а тези на utf8 - не. Наложи се да пишем php боскриптове, за да се оправи чудото и сериозни врътки, за да се подкарат сървърите.

Ей го и скрипта за конверсия на текстовете, не ме е много срам, защото свърши работа, само дето И Ш ш станаха на J :)

[ Коментари: 18 ]
Коментари

:) mysql-а е просто известен с хилядите си проблеми с charset-ове и encoding-и...

Написа Васил Колев (www) на 31-May-2007 11:34


Още да добавя към комбинацията с MySQL'a - SET NAMES, COLLATION ;-)

Написа Michel (www) на 31-May-2007 12:40


Az vse pak da pitam. po princip kato pisha prilojenie php + mysql vsichko mi e cp1251. kolko greshno i kolko pravilno e i koi e universalniq podhod?

Написа Lubomir Yordanov на 31-May-2007 13:13


@Lubimir Yourdanov
За "универсалния подход" - UTF-8 навсякъде - HTML, PHP, DB.
За PHP-то имай предвид,че ще ти трябва mb_string модула поне.

Написа Огнян (www) на 31-May-2007 14:46


А за по-лесно като ще пишеш на български, всичко на cp1251. Не си струва гъзобола utf8 ако ще е само кирилица.

Написа Георги Чорбаджийски (www) на 31-May-2007 14:48


PHP-то не бива да е UTF8. Вътре не трябва да имаш текстови съобщения, хубаво е да са изнесени в отделен файл. HTML-ите също, за това за измислили template-engine-ите.
Всеки UTF8 файл има в началото BOM (3 байта май беше). Ако имаш:

<?php
header("location: /alabala.php");
exit();

ще ти ревне, че не можеш да направиш редиректа именно заради тези 3 байта.

Написа Георги (www) на 31-May-2007 17:13


ООоо недей с тия template engines, това е по-зле и от MySQL-а, честно :(

Написа Георги Чорбаджийски (www) на 31-May-2007 17:18


Че какъв е проблема с templates? При разработката е страшно удобно при положение, че работят различни хора по скриптовете и дизайна. Оправдание да не ползваш разделен код и визуализация трудно се намира...

Написа Becko на 31-May-2007 19:11


Проблема е че никога не е толкова розово колкото звучи. Различни хора да правят визуализацията и кода и всеки да си играе в неговата градинка като по средата стои някакъв си template engine (не дай си боже да е написан на PHP) е рецепта за много лош сайт, да не кажа отвратителен от гледна точка на работа и поддържане сайт.

Написа Георги Чорбаджийски (www) на 31-May-2007 19:21


Не мога да разбера къде е проблема според теб - в самият подход при разделянето на код и дизайн или в template engine-ите, които се ползват? Не се заяждам, просто ми е интересно твоето мнение. Голяма част от времето си прекарвам в разработката на уеб-приложения и от както преди няколко години почнахме да ползваме templates продуктивността рязко скочи.

Написа Becko на 01-Jun-2007 06:51


@Георги
За "Всеки UTF8 файл има в началото BOM (3 байта май беше)" - никога не съм имал подобен проблем, а съм изцяло на UTF-8. Може би е до настройка на apache/mod_php.
За template engines - прав си, но всичко опира до това как се ползва (а за какъв проект става въпрос).
"Различни хора да правят визуализацията и кода и всеки да си играе в неговата градинка" - да това беше идеята до преди време, но тя умря в мъки и за добро или лошо вече не е така.
От дизайнери се взема PSD/PNG или в най-добрия случай статичен HTML, но само ако е "нарязян" като хората. Оттам нататък се поема от php developer.

Написа Огнян (www) на 01-Jun-2007 09:03


@Огнян
Хм.. не съм много съгласен. Според мен е правилно целият процес да се разпредели на 3 длъжности:
1. Дизайнер, който прави PSD/PNG
2. Web developer, който се занимава с рязането, подреждането в HTML и редактирането на templates
3. PHP developer, който се занимава с ДБ-та, логика и т.н.

А да не се ползват templates си е живо мъчение (особено за девелопера). Когато дизайнера или уеб девелопера решат (или дизайнера ако няма отделен уеб девелопер), че нещо не им харесва и трябва да се смени да тормозят php developera - смени ми този таг така, онзи инъче - мъка.

Написа Becko на 01-Jun-2007 09:30


@Веско
Абсолютно съм съгласен с теб на теория, но практически в тая липса на службогонци е трудно да се постигне такава идилия :-)
2 месеца търсихме дизайнер и зорлем с компромис назначихме една девойка. PHP developer-и (junior & senior) търсим от времето, когато още имаше динозаври...
Сега надеждата ми е, че като се преместим тия дни в разкошния нов офис и назначим нова секретарка (170 90/60/90 руса), с подходяща обявя за работа, все някой ще се подлъже да дойде :-)

Написа Огнян (www) на 01-Jun-2007 10:24


@Огнян
Покажи снимка на секретарката :)

Написа Георги (www) на 01-Jun-2007 13:39


@Георги
Разбира се, че ще покажа. Нека я назначим. И календар ще направим :-)

Написа Огнян (www) на 01-Jun-2007 17:57


@Георги Чорбаджийски - Ако ни бяхте попитали, щях да ти дам сламка :) на тоя скапан сайт му 'оправях' преди време псевдо-RSS класовете, които местят данни от тази БД в БД на другата машина за да захранва skysports.bg и да се чете кирилицата. Така че решението си го има и си е там на самия сървър. Както и да е. Ако се бяхте погрижили да има backup нямаше да имате тези проблеми, но .... няма да ти давам акъл как да се грижите за сървърите.

@Огнян - не ми пука за секретарката, аз съм женен мъж, дай малко инфо за условията за php разработчик (къде да прочета?). Моля.

Написа Kolio на 06-Jun-2007 13:07


Акъл не ща от хора, дето реализират репликация с php скриптове. Както обичам да казвал, ебал съм ви в нещастниците неграмотни.

Написа Георги Чорбаджийски (www) на 06-Jun-2007 13:13


@Георги Чорбаджийски :) благодаря, не си моя тип.

Не съм го правил аз, само даобавих 2 реда за да се чете кирилицата. Имах същия проблем като теб - след пускане на тази простотия с репликирането единия сайт беше ок (защото през него се пълнеха таблиците с писания), а другия с копирани данни не се четеше. За мен ситуацията с пуснато репликиране беше заварено (работещо) положение. Очевидно не съм достатъчно умен, щом при мен нямаше проблеми с отделни букви и всичко се четеше нормално.

Разбирам защо не искаш акъл - предпочиташ да откриваш сам топлата вода, при това по пътя си открил нова азбука ....

Написа Кольо на 06-Jun-2007 13:53