[ Поиск ] - [ Пользователи ] - [ Календарь ]
Полная Версия: вопрос по работе с функцией LAST_INSERT_ID()
DooMka
По своему назначению LAST_INSERT_ID() упрощает жизнь программистов, но вот вопрос как оформить её в правильном синтаксическом исполнении кода

потребность использования LAST_INSERT_ID возникает в ситуациях, когда вы создаёте новую запись в базе данных, и какой-либо столбец базы формируется автоматически - авто-инкремент, так-вот вашей задачей стоит вытащить автоматически выставленный индификатор новой звписи, не прибегая к лишнему запросу и прогону по всей таблице в поисках последней....

Просьба синтаксически правильно переоформить мой кривой и неработающий код

$rqqt = mysql_query ("INSERT INTO 'group_tables' (name,gr,deskript,keyvords,hedid,avtorid) VALUES ('$name', '$grp', '$textd', '$textkv', '$idgl', '$avtorid');
SET @lastid2 := LAST_INSERT_ID();
INSERT INTO 'group_tables_2' (id_hedpod,text) VALUES (@lastid2, '
$text');
"
);


в данном варианте я попытался вытащить значение id новой записи функцией LAST_INSERT_ID и затем записать её в @lastid2. И уже при создании новой таблицы использовать ID этой записи.

Пробовал и так

$rqqt = mysql_query ("INSERT INTO 'group_tables' (name,gr,deskript,keyvords,hedid,avtorid) VALUES ('$name', '$grp', '$textd', '$textkv', '$idgl', '$avtorid')");

$rid = mysql_query ("SELECT LAST_INSERT_ID()");

$ textvk_2 = mysql_query ("INSERT INTO 'group_tables_2' (id_hedpod,text) VALUES (@lastid2, '$text')");



Но второй вариант заведомо неправильный, так - как идёт уже другое обращение $rid - и она не может в себе содержать никакого LAST_INSERT_ID.

Прошу помощи в синтаксисе php + mysql работы данной функции LAST_INSERT_ID()



Спустя 8 минут, 58 секунд (11.03.2012 - 14:41) Игорь_Vasinsky написал(а):
про кокатенацию в SQL запросах - можешь прочитать в моём журнале, LAST_INSERT_ID() - штатная php функция - и оформлять её нужно соотв. образом (она возращает INT)

и такой запрос можно выполнить тока в PMA или mysqli - mysql - не поддерживает мультизапросы..

и потом откуда там неожиданно SET между 2мя INSERT

Спустя 4 минуты, 9 секунд (11.03.2012 - 14:46) Visman написал(а):
$rid = mysql_insert_id();

и все.
Быстрый ответ:

 Графические смайлики |  Показывать подпись
Здесь расположена полная версия этой страницы.
Invision Power Board © 2001-2024 Invision Power Services, Inc.