Подскажите, можно ли как-нибудь организовать такой запрос, я добавляю в БД запись, а в ответ получаю, то, что добавил, мне это надо что бы получить ID записи (он в БД автоматически устанавливается).
Re: Один запрос, добавить в БД и получить в ответ то,что доб SHOW TABLE STATUS LIKE $table В результате по ключу 'Auto_increment' будет последний (следующий) id. Только не используй mysql_insert_id(), т.к. эта функция выдаёт последний вставленный id базы, а не таблицы. Одним запросом тоже не выйдет, т.к. результатом может быть ошибка вставки данных. Или, может, функцию можно написать..
Re: Один запрос, добавить в БД и получить в ответ то,что доб Спасибо за информацию и насчет написания пользовательской функции тоже.
Re: Один запрос, добавить в БД и получить в ответ то,что доб А насчет этой функции - mysql_insert_id() если я выполняю запрос и тут же получаю ID при помощи этой функции т.е. вот так вот: Код (Text): query($query); $id = $db->insert_id; есть шанс что если кто то делает что то подобное, что то добавляет в БД что спутается полученный id и я получу не то, что должен
Re: Один запрос, добавить в БД и получить в ответ то,что доб Не знаю, что у тебя в $db, и как реализовано получение id. По идее, чтобы быть уверенным, что берём последний id, нужно заблокировать базу на время подключения и запросов скрипта. Сейчас полез в поиск, попалась статья на хабре Блокировки в MySQL, вроде, толковая, сам читаю. В официальных доках про mysql_insert_id есть
Re: Один запрос, добавить в БД и получить в ответ то,что доб А почему не поместить в транзакцию? Все будет выполняться в рамках 1 транзакции.
Re: Один запрос, добавить в БД и получить в ответ то,что доб http://www.php.net/manual/en/mysqli.begin-transaction.php и т.д. Таблица должна быть innodb
Re: Один запрос, добавить в БД и получить в ответ то,что доб mysql_insert_id() безопасен http://stackoverflow.com/a/5069847/272885 Другие пользователи, вставляющие свои записи, гарантированно НЕ получат то же значение, что и ты. Не знаю поможет ли это тебе, но знай — автоинкремент не зависит от транзакции. В некоторых случаях ты можешь просрать запись (транзакция будет откачена). Но в любом случае, то значение, что ты прочитал через mysql_insert_id(), не будет выдано никому больше. Не будет случайных связей.
Re: Один запрос, добавить в БД и получить в ответ то,что доб artoodetoo, спасибо, очень поможет, а точнее, просто не надо будет составлять и отправлять еще один запрос.