За последние 24 часа нас посетили 17703 программиста и 1663 робота. Сейчас ищут 925 программистов ...

LAST_INSERT_ID() в PHP

Тема в разделе "PHP и базы данных", создана пользователем simple, 8 ноя 2010.

  1. simple

    simple Активный пользователь

    С нами с:
    17 сен 2010
    Сообщения:
    56
    Симпатии:
    0
    Не могу понять, почему не работает следующий запрос в PHP,
    [sql]SELECT* FROM user
    WHERE id= LAST_INSERT_ID();[/sql]
    в mysql все работает отлично, как и должно быть, но PHP этот же запрос не хочет обрабатывать, выдает пустую страницу без ничего, я так понимаю что все дело в LAST_INSERT_ID. Как на PHP реализовать такой запрос, помогите пипл.
     
  2. Volt(220)

    Volt(220) Активный пользователь

    С нами с:
    11 июн 2009
    Сообщения:
    1.640
    Симпатии:
    1
    А как этот запрос вызывается и как выводится результат?
     
  3. simple

    simple Активный пользователь

    С нами с:
    17 сен 2010
    Сообщения:
    56
    Симпатии:
    0
    Volt(220) Примерно так
    [sql]$a=mysql_query("SELECT*from user WHERE id=LAST_INSERT_ID()") or die(mysql_error());
    while ($rows=mysql_fetch_array($a))
    {
    echo $rows['id'].' '.$rows['login'].' '.$rows['passowrd'].'<br>';
    }[/sql]
     
  4. Gromo

    Gromo Активный пользователь

    С нами с:
    24 май 2010
    Сообщения:
    2.786
    Симпатии:
    2
    Адрес:
    Ташкент
    LAST_INSERT_ID() работает для сессии мускула.

    Т.е. для разных сессий могут быть:
    1. разные значения
    2. ничего не быть вообще

    В обычном порядке каждый запрос открытия/соединения с мускулом создаёт новую сессию.

    Лучше что-то типа такого: SELECT * FROM user ORDER BY id DESC LIMIT 1
     
  5. lupstick

    lupstick Активный пользователь

    С нами с:
    11 дек 2010
    Сообщения:
    1
    Симпатии:
    0
    Здрасте, я тоже не совсем специалист особенный, можно задам вопрос?
    нужно создать номер контракта, который бы высвечивался бы в ячейки, который бы получался из последнего введенного ID в базе данных +1, можно же использовать last_insert для ячейки номера?
    или где можно посмотреть?
     
  6. Gromo

    Gromo Активный пользователь

    С нами с:
    24 май 2010
    Сообщения:
    2.786
    Симпатии:
    2
    Адрес:
    Ташкент
    повторюсь - LAST_INSERT_ID срабатывает после запроса INSERT.
    Если INSERT-а не было, то LAST_INSERT_ID может не сработать.

    Чтобы узнать последний введённый айди, достаточно запроса
    SELECT id FROM table ORDER BY id DESC LIMIT 1

    PS это не лучший способ, т.к. возможны ошибки, если предыдущая вставленная запись была удалена, или после получения айди, кто-то произвёл вставку - получится дублирование.
     
  7. Padaboo

    Padaboo Старожил
    Команда форума Модератор

    С нами с:
    26 окт 2009
    Сообщения:
    5.242
    Симпатии:
    1
    lupstick
    в качестве аватарки разрешены только личные фото
     
  8. jei

    jei Активный пользователь

    С нами с:
    11 июн 2009
    Сообщения:
    542
    Симпатии:
    0

    PHP:
    1. SELECT * from
    пробелы поставь