потребность использования 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
и такой запрос можно выполнить тока в PMA или mysqli - mysql - не поддерживает мультизапросы..
и потом откуда там неожиданно SET между 2мя INSERT
Спустя 4 минуты, 9 секунд (11.03.2012 - 14:46) Visman написал(а):
$rid = mysql_insert_id();
и все.