|
Perl: Преобразование массивов
|
|||
---|---|---|---|
#18+
Снова нужна помощь специалистов. Есть объект типа такого: Код: javascript 1. 2. 3. 4. 5. 6.
Это список сущностей, у которых есть переменное количество атрибутов (полей). В каждой сущности произвольное количество записей (строк). Мне нужно написать скрипт, который будет осуществлять пакетную загрузку информации о сущностях в БД. Для этого скрипт генерирует параметрический SQL с произвольным количеством параметров, например: Код: sql 1. 2.
Выше приведен синтаксис многострочного insert, который вставляет сразу несколько строк (по количеству указанных подстановочных параметров ?). В БД есть ограничение по максимальному количеству параметров в запросе, поэтому я не могу генерировать SQL для вставки всех строк. В принципе ограничение достаточно большое, но для отладки я взял небольшое значение (не более 10 параметров). Поскольку количество атрибутов у каждой сущности разное, а вставлять нужно целым числом строк, количество параметров в одном запросе должно быть кратно количеству атрибутов, и при этом не превышать максимальное значение. Сейчас я составил такой скрипт, который работам правильно и в соответствии с теми требованиями, которые я описал: Код: php 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14. 15. 16. 17.
Здесь $sync это объект со списком сущностей, $qs это максимальное количество параметров, $qr это максимальное количество строк, $cache это источник данных, $tvg это соединение с БД. Вообщем-то все работает правильно. Но можно ли избавиться от foreach для получения массива значений параметров $arg ? ... |
|||
:
Нравится:
Не нравится:
|
|||
21.11.2017, 21:14 |
|
|
start [/forum/topic.php?fid=23&msg=39557166&tid=1460452]: |
0ms |
get settings: |
10ms |
get forum list: |
14ms |
check forum access: |
4ms |
check topic access: |
4ms |
track hit: |
70ms |
get topic data: |
14ms |
get forum data: |
3ms |
get page messages: |
45ms |
get tp. blocked users: |
2ms |
others: | 16ms |
total: | 182ms |
0 / 0 |