• Главная
  • » SQL
  • » Как добавить одним запросом кучу записей + редактировать существующие?

#1 2014.11.15 22:56

TLENS
Moderator
Откуда: Украина
Зарегистрирован: 2009.04.05
Сообщений: 2402
Карма: 14
Профиль

Как добавить одним запросом кучу записей + редактировать существующие?

Есть список данных которые нужно залить в базу данных.
Как сделать это одним запросом. Но при наличии существующией просто обновить ее?

Неактивен

#2 2014.11.15 23:24

TLENS
Moderator
Откуда: Украина
Зарегистрирован: 2009.04.05
Сообщений: 2402
Карма: 14
Профиль

Re: Как добавить одним запросом кучу записей + редактировать существующие?

Пока что обойдусь таким костылем

Код:

1
span style="color: #0000BB"><?php $video_sql = []; $id_sql_select = []; $timestamp = time(); foreach ($videos as $video) { $id_sql_select[] = "'{$video['id']}'"; $description = $db->real_escape_string($video['description']); $title = $db->real_escape_string($video['title']); $video_sql[$video['id']] = "('{$video['id']}', \"$title\", \"$description\", 1, " . "{$video['duration']}, $timestamp)"; } $q_select = "SELECT `id` FROM `$this->_tableName` WHERE `id` IN (".implode(', ', $id_sql_select) . ")"; if ($r = $db->query($q_select)) { while($row = $r->fetch_assoc()) unset($video_sql[$row['id']]); } if (sizeof($video_sql)) { $q = "INSERT INTO `$this->_tableName` (`id`, `title`, `description`, `description_mini`, `duration`, `timestamp`)\n" . "VALUES ". implode(",\n", $video_sql); if (!$db->query($q)) { echo $db->error; return false; } }

Неактивен

#3 2014.11.16 01:52

Gemorroj
Administrator
Откуда: Белоруссия
Зарегистрирован: 2007.11.03
Сообщений: 6594
Карма: 107
Профиль Веб-сайт

Re: Как добавить одним запросом кучу записей + редактировать существующие?

Есть REPLACE команда..)

Неактивен

#4 2015.07.02 21:50

TLENS
Moderator
Откуда: Украина
Зарегистрирован: 2009.04.05
Сообщений: 2402
Карма: 14
Профиль

Re: Как добавить одним запросом кучу записей + редактировать существующие?

Gemorroj написал:

Есть REPLACE команда..)

А что если юзать insert into on duplicate key update?
Как по мне он более гибкий

Неактивен

#5 2015.07.04 10:57

Gemorroj
Administrator
Откуда: Белоруссия
Зарегистрирован: 2007.11.03
Сообщений: 6594
Карма: 107
Профиль Веб-сайт

Re: Как добавить одним запросом кучу записей + редактировать существующие?

ну можешь и его. replace проще просто

Неактивен

  • Главная
  • » SQL
  • » Как добавить одним запросом кучу записей + редактировать существующие?

Дополнительно

forum.wapinet.ru

PunBB Mod v0.6.2
0.018 s