1. PHP / Говнокод #14407

    +158

    1. 1
    2. 2
    3. 3
    4. 4
    $result_max = mysql_query("SELECT MAX(id)+1 as max FROM cms_competition;");
    $row_max = mysql_fetch_object($result_max);
    if(!$row_max->max)
          $row_max->max = 1;

    Так ведь проще

    Запостил: kindofbear, 24 Января 2014

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

    • это велик LAST_ID или что ?
      Ответить
      • Да, но, справедливости ради, до INSERT. Но, костыль, ибо можно было бы как раз-таки делать это всё после INSERT.
        Ответить
        • > делать это всё после INSERT
          select max(id) не стоит делать после insert. Слишком уж эта хрень чувствительна к изоляции транзакций (которой в myisam, к слову, вообще нет)...

          Если до insert оно просто может сгенерить одинаковые айдишки и у одного юзера сфейлится вставка (неприятно, но потерпят), то после insert оно вполне может прицепить запись куда попало.

          Имхо, в мускуле лучше всего юзать mysql_last_insert_id() или как там его правильно зовут.
          Ответить
          • Я и имел ввиду lastInsertId, не MAX, конечно
            Ответить
          • myisam уже вроде как не юзает не кто. Выигрыш в скорости столь мал, а проблем не трудно отлаживаемых можно отгрести не мало.
            Ответить
            • На халявных хостингах что-то другое?

              Мне больше всего нравится сортировка за O(n^2)
              Ответить
              • Зато такая нахуй никому не сдавшаяся невероятно полезная операция, как подсчет всех строк в таблице, там исполняется за O(1).
                Ответить
              • не юзай бесплатные хостинги для взрослый проектов.
                Ответить
                • То есть всякие вердпрессы под него писать будут еще очень долго?
                  Ответить
                  • Я даже не уверен что ворд пресс использует myisam. Вернее то конечно может, но если есть поддержка innodb будет в innodb
                    Ответить
                  • http://wordpress.org/support/topic/wordpress-use-innodb-by-default

                    Я все разузнал вордпресс хранит данные в таблицах типа по умолчанию для БД.
                    З.Ы. вот структура БД
                    http://codex.wordpress.org/Database_Description
                    Я не особенно специалист но криминала не будет если в InnoBD
                    Ответить

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