Информация

Обсуждало 4 человека

Добавление данных в MySQL

Логика и программирование
29 октября 2011 в 22:56:00

Возник вопрос, можно ли при использовании запроса INSERT INTO, вернуть записанные данные. У меня просто поле id с галочкой авто увеличение, и мне нужно узнать этот номер при записи данных.

Обсуждение (вниз)

Не хватает только вашего мнения. Зарегистрируйтесь, чтобы написать!

28 июня 2013 в 17:01:52

можно через mysqli_multi_query, но лень было переписывать скрипт, оставил как есть. Вроде и так работает

28 июня 2013 в 08:24:40

а можно просто все одним запросом сделать, разделяя их через ";"

Да ладно, mysql_query несколько сразу не умеет, можно только по одному

27 июня 2013 в 17:36:11

Я так сразу и делал, но не получилось.

27 июня 2013 в 16:37:00

а можно просто все одним запросом сделать, разделяя их через ";":

$query = "UPDATE ... ;" . "UPDATE ... ;" . "UPDATE ... ;"; mysql_query($query);

26 июня 2013 в 22:18:26

Спасибо за помощь)))) Строк будет немного, максимум 10...

26 июня 2013 в 08:21:26

Ты кстати, если у тебя там много строк в цикле апдейтится, перед циклом заблокируй таблицу на запись. А после разблокируй. Так будет быстрее, иначе после каждой вставки индексы будут пересчитываться.
блокировать таблицу на запись:
LOCK TABLES table_name WRITE
разблокировать:
UNLOCK TABLES

26 июня 2013 в 08:18:32

Ну естественно одинаковые. WHERE..IN ничем особо от WHERE..OR-OR-OR-OR.. не отличается, просто писать меньше.

25 июня 2013 в 19:18:36

Спасибо! Только у меня и в варианте с
UPDATE table_name
SET column1=value, column2=value2,...
WHERE lol IN (1,16,25,54)

тоже все записи одинаковые получились, сделать просто в цикле запрос и все

25 июня 2013 в 08:34:19

можно ещё так:
UPDATE table_name
SET column1=value, column2=value2,...
WHERE lol IN (1,16,25,54)

25 июня 2013 в 08:31:09

Только учти, что при таком способе во все строки запишутся ОДИНАКОВЫЕ значения. Если тебе надо писать в каждую строку что-то своё - перебирай их циклом, и апдейть по одной.

25 июня 2013 в 03:38:38

UPDATE table_name
SET column1=value, column2=value2,...
WHERE lol=some_value OR lol=some_value2

24 июня 2013 в 20:06:04

Возникла еще проблема, в mysql UPDATE'ом как изменить несколько строк, т.е. у меня есть предметы, и нужно сохранить их позицию. Значения в строках все разные, и вообще возможно так сделать c помощью UPDATE?

30 октября 2011 в 00:39:37

спасибо))

29 октября 2011 в 23:25:42

mysql_insert_id() возвращает ID, сгенерированный колонкой с AUTO_INCREMENT последним запросом INSERT к серверу, на который ссылается переданный функции указатель link_identifier. Если параметр link_identifier не указан, используется последнее открытое соединение.
Fundux.ru v.3.0 © 2006-2021 AleXNoD
Портал русских флеш игр и flash мультов