Warning: Cannot use a scalar value as an array in /home/admin/public_html/forum/include/fm.class.php on line 757

Warning: Invalid argument supplied for foreach() in /home/admin/public_html/forum/include/fm.class.php on line 770
Форумы портала PHP.SU :: Версия для печати :: Проверка и добавление в БД данных в цикле
Форумы портала PHP.SU » » Вопросы новичков » Проверка и добавление в БД данных в цикле

Страниц (1): [1]
 

1. livote - 05 Февраля, 2015 - 18:28:21 - перейти к сообщению
в цикле получаются данные.примерно 100 строк с данными.каждую строку нужно сверить с базой данных, и если её нет, то добавить данные в бд.
Правильно я понимаю: нужно в каждую итерацию цикла делать 2 запроса в бд? или есть более простой способ?
2. Мелкий - 05 Февраля, 2015 - 18:49:22 - перейти к сообщению
Используйте подход с пакетной обработкой.
Например, предварительно вычитать имеющиеся в таблице значения и затем сравнивать локально.
Или записывать во временную таблицу, затем одним запросом переписать строки.
Возможно, хватит банального insert on duplicate key update или insert ignore
3. livote - 05 Февраля, 2015 - 19:13:53 - перейти к сообщению
Мелкий пишет:
Используйте подход с пакетной обработкой.
Например, предварительно вычитать имеющиеся в таблице значения и затем сравнивать локально.
Или записывать во временную таблицу, затем одним запросом переписать строки.
Возможно, хватит банального insert on duplicate key update или insert ignore


заместо "INSERT INTO..." прописать "INSERT IGNORE INTO..." и совпадений не будет?
и как я понимаю для поля нужно будет прописать "UNIQUE"?
4. Ch_chov - 05 Февраля, 2015 - 20:06:00 - перейти к сообщению
livote пишет:
и как я понимаю для поля нужно будет прописать "UNIQUE"?

да

 

Powered by ExBB FM 1.0 RC1