Если вы хотите делать массовый апдейт в MySQL, то я могу вам предложить вот такой рецепт. Сначала вы создаете временную таблицу, циклом собираете массовый INSERT запрос и потом вставляете данные из временной таблицы в нужную. Выглядеть это может, например, так:
CREATE TEMPORARY TABLE ids (value INT, url VARCHAR(255)); INSERT INTO ids VALUES (0, 'http://url1.ru'), (0, 'http://url2.ru'), (0, 'http://url3.ru'); UPDATE blogs, ids SET my_value = ids.value WHERE blogs.url = ids.url;
Поясню. Допустим, мне понадобилось обновить некое значение в таблице в соответствии с URL. Скажем, статистику интернет-магазинов. Я создал временную таблицу из тех значений, по котороым будет вестись поиск, и значений, которые я буду вставлять в нужную мне таблицу. Дальше, идет INSERT сразу нескольких строк. Его очень просто собирать в цикле из массива. Например вот так:
$elements = array(); foreach ($aray as $url => $value) { $elements[] = '('.$db->escape($value).', '.$db->escape($url).')'; } $insert_string = implode(',', $elements);
После чего, собственно апдейт со вставкой. Временная таблица исчезнет после окончания сессии БД. На то она и временная.









