как узнать id после INSERT в php
как узнать id после INSERT в php
Вопрос в том как ме узнать id после INSERT используя PHP
Re: как узнать id после INSERT в php
Я делаю так:
сначала выполняю $id = ibase_gen_id();
потом при insert into tbl (ID, NAME) values ($id, $name)
сначала выполняю $id = ibase_gen_id();
потом при insert into tbl (ID, NAME) values ($id, $name)
У меня начала работать на PHP 5, для 4 писал функцию
Код: Выделить всё
//$name_gen - имя генератора
//$num_gen - какое число прибавить к значению
//$srv - соед к БД
function ibase_gen_id($name_gen,$num_gen,$srv) {
$sql = "select gen_id($name_gen, $num_gen) from rdb\$database";
$f=ibase_query($srv,$sql);
$r=ibase_fetch_row($f);
return $r[0];
}
я тож думал о подобном, но через MAX(ID).Sparton писал(а):У меня начала работать на PHP 5, для 4 писал функцию
Код: Выделить всё
//$name_gen - имя генератора //$num_gen - какое число прибавить к значению //$srv - соед к БД function ibase_gen_id($name_gen,$num_gen,$srv) { $sql = "select gen_id($name_gen, $num_gen) from rdb\$database"; $f=ibase_query($srv,$sql); $r=ibase_fetch_row($f); return $r[0]; }
но вот вся проблема в том что например MySQL есть функция(точно не помню) которая находит наивысший ID и +1 и держит его пока не добавиться запись(если соединение не закрыто) и под этим номером другой конект не запишит в таблицу;
Если я ошибаюсь то поправте меня! но мне кажитьсяя что в данном примере есть шанс что ID ($r) займет другая запись? или тут тоже будет держать в резерве ID на данную сессию?
Блин я даже думал в все это дело в масив запихать и пусть пытеться пока не запихает.
читать www.ibase.ru/devinfo/generator.htm , срочно.я тож думал о подобном, но через MAX(ID).
см. выше.Если я ошибаюсь то поправте меня! но мне кажитьсяя что в данном примере есть шанс что ID ($r) займет другая запись? или тут тоже будет держать в резерве ID на данную сессию?
сортировка
[quote="Sparton"][/quote]
а ты много на пхп+птах работаешь?
интересует следущее я получаю SQL запрос перед самым показом пользователю (беру из БД), соответственно получаю результат и отдаю юзверу, но потом он хочет его немного посортировать вот что делать дальше еще не придумал =)
есть 3 варианта (результат всегда в пределе 100 строк)
1, парсить запрос и добавлять\менять order by
(минус много запросов с юнионами)
2, запрос брать в подзапрос
(лишние насилование птички)
3, первый результат закешировать и работать только с ним, пусть апачь трудится
(не предстовляю как это сделать)
Есть опыт\предложения ?
а ты много на пхп+птах работаешь?
интересует следущее я получаю SQL запрос перед самым показом пользователю (беру из БД), соответственно получаю результат и отдаю юзверу, но потом он хочет его немного посортировать вот что делать дальше еще не придумал =)
есть 3 варианта (результат всегда в пределе 100 строк)
1, парсить запрос и добавлять\менять order by
(минус много запросов с юнионами)
2, запрос брать в подзапрос
(лишние насилование птички)
3, первый результат закешировать и работать только с ним, пусть апачь трудится
(не предстовляю как это сделать)
Есть опыт\предложения ?
Re: сортировка
Ну я обычно просто запрос перестраивал и опять в БД его. А что если результат запроса в массив, а массив в сессию? Дальнейшей то обработке будет только полученный результат подвергаться..
-
- Заслуженный разработчик
- Сообщения: 1436
- Зарегистрирован: 15 сен 2005, 09:05
Re: как узнать id после INSERT в php
Как уже сказали, обычно id узнают до INSERT. Но если приспичило именно после, то RETURNING тебе в руки.UserAleks писал(а):Вопрос в том как ме узнать id после INSERT используя PHP
Спасибо статейка отличная:!:kdv писал(а):читать www.ibase.ru/devinfo/generator.htm , срочно.я тож думал о подобном, но через MAX(ID).
см. выше.Если я ошибаюсь то поправте меня! но мне кажитьсяя что в данном примере есть шанс что ID ($r) займет другая запись? или тут тоже будет держать в резерве ID на данную сессию?
Re: сортировка
ябы селектом забабахал все дело, но это если с перезагрузкой страницы, а если нет то парился и Яваскриптом извращялся используя масивыAttid писал(а):а ты много на пхп+птах работаешь?Sparton писал(а):
интересует следущее я получаю SQL запрос перед самым показом пользователю (беру из БД), соответственно получаю результат и отдаю юзверу, но потом он хочет его немного посортировать вот что делать дальше еще не придумал =)
есть 3 варианта (результат всегда в пределе 100 строк)
1, парсить запрос и добавлять\менять order by
(минус много запросов с юнионами)
2, запрос брать в подзапрос
(лишние насилование птички)
3, первый результат закешировать и работать только с ним, пусть апачь трудится
(не предстовляю как это сделать)
Есть опыт\предложения ?
Re: сортировка
пример можешь нарисать ?Sparton писал(а):А что если результат запроса в массив, а массив в сессию? Дальнейшей то обработке будет только полученный результат подвергаться..
Re: сортировка
Attid писал(а):пример можешь нарисать ?
Код: Выделить всё
$query="select id, name from TBL where id>0";
$sth=ibase_query($DB, $query);
$k=0;
while($row=ibase_fetch_assoc($sth)){
$_SESSION['sql'][$k]= $row;
$k++;
}