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

    +139.1

    1. 1
    2. 2
    3. 3
    4. 4
    5. 5
    $mem=f(qs("max(id)+1 as nextid from members "));
    	$mid=$mem[nextid];
    	$sql="`members` ( `id`, `login` , `pswd` , `fname` , `lname` , `email` , `street` , `city` , `state` , `country` , `zip` , `phone` , `fax` , `status` , `rdate` ) VALUES ( '$mid', '$login', '$pswd_1', '$fname', '$lname', '$email', '$street', '$city', '$state', '$country', '$zip', '$phone', '$fax', '$mem_default_approval', '$dt1')";
    	
    	qi($sql);

    Вместо auto_increment индекс можно определить вот таким вод способом)))

    Запостил: guest, 08 Июля 2009

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

    • Говгоность:
      если ключ составной, к примеру (id, zip), то именно таким способом определяется следующее значение инкрементного поля.

      http://dev.mysql.com/doc/refman/5.0/en/example-auto-increment.html

      Хотя, конечно, из контекста явно видно, что это далеко не тот случай.
      Ответить
    • Главное, чтобы всё это было в рамках транзакции, иначе ппц.
      Ответить
    • cheef:
      во второй строке ошибка)
      Ответить
    • Если это писалось с учетом возможности использования в постгре, тогда норм. там автоинкремента нет.
      Ответить
      • читай матчасть.
        serial - твой автоинкремента в постгрес.
        там даже проще.
        id - тип serial.

        insert into x (c) values (v) returning id;
        Ответить
    • За такое нужно вообще убивать. А если 1000 пользователей одновременно работает чему будет равен этот max(id)
      Ответить

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