Не могу понять, почему не работает следующий запрос в PHP, [sql]SELECT* FROM user WHERE id= LAST_INSERT_ID();[/sql] в mysql все работает отлично, как и должно быть, но PHP этот же запрос не хочет обрабатывать, выдает пустую страницу без ничего, я так понимаю что все дело в LAST_INSERT_ID. Как на PHP реализовать такой запрос, помогите пипл.
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]
LAST_INSERT_ID() работает для сессии мускула. Т.е. для разных сессий могут быть: 1. разные значения 2. ничего не быть вообще В обычном порядке каждый запрос открытия/соединения с мускулом создаёт новую сессию. Лучше что-то типа такого: SELECT * FROM user ORDER BY id DESC LIMIT 1
Здрасте, я тоже не совсем специалист особенный, можно задам вопрос? нужно создать номер контракта, который бы высвечивался бы в ячейки, который бы получался из последнего введенного ID в базе данных +1, можно же использовать last_insert для ячейки номера? или где можно посмотреть?
повторюсь - LAST_INSERT_ID срабатывает после запроса INSERT. Если INSERT-а не было, то LAST_INSERT_ID может не сработать. Чтобы узнать последний введённый айди, достаточно запроса SELECT id FROM table ORDER BY id DESC LIMIT 1 PS это не лучший способ, т.к. возможны ошибки, если предыдущая вставленная запись была удалена, или после получения айди, кто-то произвёл вставку - получится дублирование.