"PHP" / Говнокод #6271 Ссылка на оригинал

0

  1. 1
  2. 2
  3. 3
$Qstatus = $osC_Database->query('select max(cms_id) as cms_id from cms');
        $Qstatus->execute();
        $cms_id = $Qstatus->valueInt('cms_id') + 1;

Код в OSCommerce использующийся для увеличения id на 1.

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

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

  • вообще имеет смысл, если записей в cms_id нет, так как max() вернет NULL.
    Ответить
  • Это не совсем говнокод, просто вы не поняли зачем так сделано. Я раньше тоже считал это аццким говнокодом. Первый раз увидел такое в phpBB 2.x.
    Суть в том, что на cms_id стоит autoincrement. И если вы случайно добавляете строку в конец таблицы, потом ой, удалите ее, то id все равно уже на единицу прыгнет. А вот таким способом как приведен в коде это пытаются побороть.

    ИМХО.
    Ответить
    • а "cms" в именах энтитей призвано убеждать нас что это - CMS
      Ответить
    • Нахрена?

      И, блин, я боюсь представить что делается после того, как удалится что-то в середине.
      Ответить
    • Так если есть автоинкремент, зачем +1 этот?
      Ответить
  • Это OsCommerce 3.0 alpha5.
    Говнокод действительно служит заменой auto_increment, а таблица cms хранит статьи.
    Ответить

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

Из-за тебя ушел bormand, guest!

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


    8