19:29

php + mysql

Псих
Есть таблица в mysql, в которой поле 'id' со значением автовозрастания (A_I).
Далее, c помощью php добавляю новую строку в базу. Как сразу же узнать, какое значение было присвоено полю 'id'? Делать запрос с сортировкой по id по убывания и брать первый результат? Или есть другие способы?

@темы: MySQL, PHP, Вопросы

Комментарии
04.11.2009 в 19:57

Чудеса навигации
Если вы задаете переменную и присваиваете ей команду инсерта в sql, то эта переменная будет содержать id строки (или массив id вставленных строк), которая/ые создались в БД.
04.11.2009 в 19:58

главное ебашилово, мои дорогие)

04.11.2009 в 20:11

Псих
Спасибо за ответы!
04.11.2009 в 20:15

Люди никогда не достигнут совершенства, пока будут оставаться людьми...
Crazy Wizard, надо учесть, что с момента добавления записи и прихода ещё одного запроса, потенйиально может появиться ещё одна запись (одновременно нажали кнопку). Поэтому нужно писать хранимую программу, которая будет всё это делать и возвращать результат скрипту.
04.11.2009 в 20:27

 
Какая жесть ><

$query = mysql_query("INSERT IGNORE INTO table ...");
$new_row_id = mysql_insert_id();
05.11.2009 в 10:25

Sanctus Satanas
Или можно сделать через SELECT LAST_INSERT IGNORE_ID().
Но вообще-то обычно проще mysql_insert_id(); :)

Расширенная форма

Редактировать

Подписаться на новые комментарии
Получать уведомления о новых комментариях на E-mail