Это может быть больше вопросом типа дизайна / логики, но я пытаюсь опросить веб-сервис, который возвращает около 15 «записей» foo. Затем я беру эти 15 записей и пытаюсь использовать SQL INSERT. Если я проведу опрос еще раз и вернусь к 20 записям, я попытаюсь вставить только 5 новых записей.
Моя проблема заключается в загрузке первой страницы, когда он выполняет первый опрос, он всегда будет возвращать все записи. Когда я делаю начальную INSERT, я, конечно, получаю кучу ошибок «Нарушение ограничения PRIMARY KEY». В настоящее время это «нарочно», но мне интересно, есть ли лучший подход, или это хороший подход. Что-то о заполнении журнала ошибок php неоднократно говорит мне, что это не так. 🙂
Это решается просто с помощью SQL / Try / Catch?
Схема ниже:
Если вы хотите избежать появления ошибок, вы можете проверить, какая из публикаций уже существует, с помощью SQL-утверждения, подобного этому
SELECT id FROM table WHERE id IN ([id list])
где id
ваш столбец первичного ключа, table
стол (сюрприз) и [id list]
разделенный запятыми список идентификаторов, которые вы хотите вставить. Используйте функцию PHP implode
(документация) создать его, если у вас есть идентификаторы в списке.
Затем просто исключите строки с возвращенными идентификаторами.
Других решений пока нет …