Гость
Целевая тема:
Создать новую тему:
Автор:
Форумы / MySQL [игнор отключен] [закрыт для гостей] / Получить mysqli_insert_id при update / 12 сообщений из 12, страница 1 из 1
12.05.2016, 16:53
    #39234492
monro
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Получить mysqli_insert_id при update
Приветствую.

Как получить mysqli_insert_id при update или insert ignore?
INSERT IGNORE INTO table ( `title`, `description) VALUES ('$title', '$description' )
...
Рейтинг: 0 / 0
12.05.2016, 17:04
    #39234505
Akina
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Получить mysqli_insert_id при update
Сделать селект с теми же параметрами.
...
Рейтинг: 0 / 0
12.05.2016, 17:06
    #39234509
miksoft
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Получить mysqli_insert_id при update
После UPDATE это не имеет смысла, если он не написан специальным образом. Да и для INSERT IGNORE опасно.
А чем вызов mysqli_insert_id не устраивает?
...
Рейтинг: 0 / 0
12.05.2016, 17:16
    #39234522
monro
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Получить mysqli_insert_id при update
miksoft, ноль отдает, что бы было понятно почему он мне нужен и я хз как его получить на данный момент, есть фильмы и расписание к ним, фильм один и тот же а расписание разные на каждый день, если фильм новый то заношу в одну таблицу инфу по фильму, во вторую таблицу расписание по фильму, если фильм старый то нужно занести только данные по новому расписанию,приблизительно такие таблицы:

INSERT IGNORE INTO film ( `title`, `description`) VALUES ('$title', '$description' );

$id_film = mysqli_insert_id($link);

INSERT IGNORE INTO time ( `id_film`, `time`) VALUES ('$id_film', '$time' ) ;
...
Рейтинг: 0 / 0
12.05.2016, 17:18
    #39234526
miksoft
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Получить mysqli_insert_id при update
monro,

На пару полей `title`, `description` наложен уникальный ключ?
...
Рейтинг: 0 / 0
12.05.2016, 17:18
    #39234528
monro
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Получить mysqli_insert_id при update
miksoft, да
...
Рейтинг: 0 / 0
12.05.2016, 17:23
    #39234532
monro
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Получить mysqli_insert_id при update
как вариант, как подсказал Akina, сделать селект а уже от него смотреть и делать инсерт или далее, но может есть еще решения?
...
Рейтинг: 0 / 0
12.05.2016, 17:25
    #39234540
miksoft
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Получить mysqli_insert_id при update
monro,

Тогда так:
Код: sql
1.
INSERT IGNORE INTO film (`title`, `description`) VALUES ('$title', '$description' )

Код: sql
1.
INSERT INTO time (`id_film`, `time`) SELECT id, '$time' FROM film WHERE `title`='$title' AND `description`='$description'

IGNORE из второго запроса убрал, т.к. не вижу в нем смысла.
...
Рейтинг: 0 / 0
12.05.2016, 17:34
    #39234556
monro
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Получить mysqli_insert_id при update
miksoft, первый раз такой запрос в своей жизни вижу, а как его правильно оформить, так:
mysqli_query($link, "INSERT INTO time (`id_film`, `time`) SELECT id, '$time' FROM film WHERE `title`='$title' AND `description`='$description'"); или по другому?
...
Рейтинг: 0 / 0
12.05.2016, 17:37
    #39234560
miksoft
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Получить mysqli_insert_id при update
monroпервый раз такой запрос в своей жизни вижуДа ладно, обычный INSERT ... SELECT ...

monroкак его правильно оформитьКак-то так, наверное. Я PHP не знаю, мне трудно судить.
...
Рейтинг: 0 / 0
12.05.2016, 18:03
    #39234583
monro
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Получить mysqli_insert_id при update
miksoft, спасибо, все получилось как нужно
...
Рейтинг: 0 / 0
17.01.2017, 18:45
    #39386322
monro
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Получить mysqli_insert_id при update
miksoft
Код: sql
1.
INSERT INTO time (`id_film`, `time`) SELECT id, '$time' FROM film WHERE `title`='$title' AND `description`='$description'


а как будет лучше если допустим 10 вставок:

Код: sql
1.
INSERT INTO time (`id_film`, `time`) SELECT id, '$time' FROM film WHERE `title`='$title' AND `description`='$description' on duplicate key update `time`='".strtotime("+3month")."'


или лучше:
выбираем id
Код: sql
1.
SELECT id FROM film WHERE `title`='$title' AND `description`='$description'


потом 10 раз вставляем:
Код: sql
1.
insert into time values ('id', 'time') on duplicate key update `time`='time' 



Таблица innodb
Быстрее будет в первом случае или во втором(пишу на php, т.е. что бы узнать id мне надо будет сделать mysqli_query + mysqli_fetch_row, далее 10 раз с готовым id mysqli_query). Может есть быстрее варианты?
...
Рейтинг: 0 / 0
Форумы / MySQL [игнор отключен] [закрыт для гостей] / Получить mysqli_insert_id при update / 12 сообщений из 12, страница 1 из 1
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]