Приветствую, господа. Разбирается json и заполняется таблица. Цикл: DELETE, следом INSERT (про UPDATE знаю). "DELETE FROM comments WHERE oldid={$v->id} OR modified={$v->modified}" "INSERT INTO comments SET oldid = {$v->id}, ..., modified = {$v->modified}, ..." oldid и modified - целые. У меня на локалке вставляется три записи, у хостера - две. 1-я: id = 72116484, modified = 1511286715180 2-я: id = 72116485, modified = 1511288098029 3-я: id = 72587596, modified = 1512653514301 На второй итерации у хостера срабатывает DELETE и убивает первую запись. Почему? Повторю: у меня на локалке всё хорошо, это у хостера так. В чем м.б. дело, подскажите, пожалуйста.
1. insert on duplicate key update 2. если так сильно хочется делать в несколько запросов - то привет транзакции. но это снижает производительность.
я нихрена не понял, но 99% что дело в неправильном выборе условия OR/AND. --- Добавлено --- не зная что именно означают эти oldid и modified никак нельзя сказать правильно удаляется запись или нет.
Проверить ключи\констрейнты\триггеры на табличке comments . В предположении, что локальные json-данные идентичны хостеровским, интересно, 1-й DELETE сколько раз отрабатывает? Возможно не завершается транзакция для 1-го INSERT. Проверять SELECTами после каждого шага. Попробуйте переписать вставку Код (Text): "INSERT INTO comments (oldid, modified) VALUES ({$v->id}, {$v->modified})" для Вашего варианта есть какие-то доп. опции LOW_PRIORITY\DELAYED, о которых, увы, ничего Вам поведать не могу.
Не, я не об этом. У конструкции Код (Text): INSERT INTO .. SET .. есть некие доп опции. А какая из них используется по умолчанию - я не знаю. Поэтому и предлагаю переписать текст вставки.