mysql_real_escape_string / Говнокод #2953 Ссылка на оригинал

0

  1. 1
  2. 2
  3. 3
  4. 4
  5. 5
  6. 6
  7. 7
  8. 8
  9. 9
CREATE TABLE IF NOT EXISTS `tbl_game` (
  `game_id` bigint(20) NOT NULL AUTO_INCREMENT,
  `game_name` varchar(150) CHARACTER SET cp1251 COLLATE cp1251_ukrainian_ci NOT NULL DEFAULT '',
  `upload_date` bigint(20) NOT NULL DEFAULT '0',
  `magazine_id` bigint(20) NOT NULL DEFAULT '0',
  `producer_id` int(11) NOT NULL DEFAULT '0',
  `dir` varchar(60) NOT NULL DEFAULT '',
  PRIMARY KEY (`game_id`)
) ENGINE=MyISAM  DEFAULT CHARSET=utf8 AUTO_INCREMENT=538 ;

Вот наткнулся на такую вот говенную таблицу.

Для некоторых случаев возможностей utf-8 видно не хватило, и пришлось использовать "продвинутую" cp1251

Запостил: Yngvie Yngvie, (Updated )

Комментарии (13) RSS

  • а может, с "COLLATE cp1251_ukrainian_ci" сортировка идет не так, как с utf8? это просто мое предположение...
    Ответить
    • Интересная мысль. С cp1251_general_ci действительно могут быть проблемы с украинским алфавитом. Но, по идее, Юникод лишен этих недостатков )
      Ответить
    • Мне тоже кажется, что utf-8 с сортировкой бы справился. К тому же, в этой таблице нету украинских названий, только русские.

      И в любом случае, использовать разные кодировки для столбцов одной таблицы попахивает.
      Ответить
    • Так оно и есть, судя по таблице уникода. Для русского проблема только с буквой Ё.
      javascript:alert("АЁЯаёя".split('').sort());//Ё,А,Я,а,я,ё
      Ответить
  • Есть ещё вариант, что ниасилятор каким-то образом прозевал, где выставляется дефолтная кодировка базы или таблицы, и установил для одного поля кодировку вручную. Для `dir`, где, надо полагать, расположены пути к файлам, и UTF-8 ведёт себя нормально, поэтому по принципу "работает - не трогай" он не стал ничего там выставлять. Но это только версия, писанная вилами по воде.
    Ответить
  • Это может быть шлюзовая таблица для импорта разной внешней кривизны
    Ответить
  • "ENGINE=MyISAM" - вот реальный говнокод, каждой таблице свою ынжину, млин. Потом половина таблиц работают с транзакциями, половина - нет. Мыскль такой мыскль...
    Ответить
    • И этому потворствуют говнохостеры:

      Характеристики MySQL.

      Версия: 5.0.x. Основная кодировка: cp1251 (Windows).

      Поддерживается только тип таблиц MyISAM, невозможно создание хранимых функций, процедур, триггеров и представлений.

      // masterhost.ru
      Ответить
      • Эх, а VPS у него бодрячком, хоть и дорогой как скотина... Энивей, я разочарован.
        Ответить
  • Да тут полно ошибок. Вот к примеру это "upload_date` bigint(20)". В чем измеряется date? Даже если это timestamp, то никак не bigint(20).
    Ни для одного поля не указано UNSIGNED - они что, все отрицательными могут быть? К тому же bigint(20) - это нереально дофига.
    Ответить

Добавить комментарий

Где здесь C++, guest?!

    А не использовать ли нам bbcode?


    8