Forum Webscript.Ru
Программирование => Perl => Тема начата: Ilya от 07 Августа 2001, 12:35:02
-
В таблице есть поле "id" (auto_increment, not_null). Когда я делаю новую запись в таблицу, id генерится автоматически. Как узнать id последней записи?
-
Сорри. Я имел ввиду Перл. Просто автор вопроса (Ilia) все время о Перле спрашивал :)
Это все приколы DBD, а не мускла
[Изменено 7.8.2001 автор: Realtor from Moscow]
-
Извеняюсь за вопрос, но как применить last_insert_id() :), примерчик есть?
Пробовал так: "select last_insert_id() from table" - не работает.
-
эээ а как в РНР это будет выглядеть? ээ в смысле это функции MySQL или DBI, DBD?
-
Можно пойти другим путем.
После вставки данных INSERT INTO ... последний id можно получить:
$sth->{mysql_insertid} или $sth->{insertid} (смотря какая версия DBI и DBD):)
-
Просто я думал, что это можно сделать в запросе, что-то в роде этого: "select id from table where id=\'max(id)\'" (жаль что это не работает).
-
Во! Блин! Спасибо :)!
Только, если у меня max(id)=\'000036\', мне возвращается ответ \'36\'. Конечно, можно сделать второй запрос: "select id from table where id=\'36\'", но мне кажется, что дожно быть более рациональное решение.
$id=количество_рядов - 1; не подойдет, т.к. некоторые записи из базы будут удаляться.
-
Во! Блин! Спасибо :)!
Только, если у меня max(id)=\'000036\', мне возвращается ответ \'36\'. Конечно, можно сделать второй запрос: "select id from table where id=\'36\'", но мне кажется, что дожно быть более рациональное решение.
$id=количество_рядов - 1; не подойдет, т.к. некоторые записи из базы будут удаляться.
А что не позволяет добавить нули в начало?
$id = sprintf("%06d",$id);
-
я делаю так.
после добавления беру из таблицы "SELECT count(id) FROM table ";
это возвращает - количество рядов.
$id=количество_рядов - 1;
[Изменено 7.8.2001 автор: AliMamed]
"SELECT max(id) FROM table ";
-
(количество записей в таблице)-1
-
А по подробней мона? Хотелось бы при добавлении новой записи получить в ответ ее id.
-
я делаю так.
после добавления беру из таблицы "SELECT count(id) FROM table ";
это возвращает - количество рядов.
$id=количество_рядов - 1;
[Изменено 7.8.2001 автор: AliMamed]
-
2Ali: в Пхп есть функция mysql_insert_id().
При том, она есть начиная с php 3.0 :)
И наконец, есть внутренныя функция MySQL last_insert_id().
-
create table a(id int not null primary key auto_increment, name text)
insert into a values(null, \'name\')
select last_insert_id()
Результат 1.