Тема: Видеоурок по запросам к БД и запросам с помощью АПИ

Добрый день.
Выкладываю очередной ролик по программированию на ReadyScript. В этот раз речь пойдёт о запросах к БД. Какие онибывают, как записывать и извлекать данные. Запросы при помощи ORM Request
Видеоурок

2 Отредактировано Каспер (05.08.2018 23:57:21)

Re: Видеоурок по запросам к БД и запросам с помощью АПИ

Здравствуйте!

По урокам, делаю массив из объектов Продукт, затем добавляю в БД:

for ... {
    $product = new \Catalog\Model\Orm\Product();
    // .. заношу значения
    $products[] = $product;
}
...
foreach ($products as $product) {
    $res = $product->insert(false, array('num'), array('alias'));
}

Продуктов несколько тысяч, и через тысяч 4-6 добавленных(обновленных) продуктов в БД выходит "Ошибка передачи данных. Повторите попытку еще раз". Какая ошибка и как можно ее избежать? Есть ли способ видеть ошибки, а не просто сообщение что ошибка передачи?

Повысить оценку Понизить оценку

Re: Видеоурок по запросам к БД и запросам с помощью АПИ

Судя по ошибке, вы обращаетесь к контроллеру в админ панели. Я думаю, что у Вас сервер отваливается по таймауту или по нехватке памяти, т.к. слишком много объектов у Вас в массиве, т.к. товар довольно грамоздский. Т.е. Вы делаете не по шагам, а пытаетесь перебрать все товары одном скопом. ВЫ можете включить отображение ошибок https://readyscript.ru/faq/#faq-errors и посмотреть, что у Вас вернется в ответ на запрос и узнаете правду.

4

Re: Видеоурок по запросам к БД и запросам с помощью АПИ

А как делать по шагам?

Повысить оценку Понизить оценку

5

Re: Видеоурок по запросам к БД и запросам с помощью АПИ

Советую просто посмотреть логи веб-сервера.
Если ошибку вызывает веб-сервер, то смотреть надо логи веб-сервера, а не включать/отключать отображение ошибок на фронтенде.

Я предлагаю универсальный способ для любого движка и необходимо учиться смотреть ошибки именно так
У меня в /var/log/nginx всё валится, включая нотисы.

п.с. и только нубы отключают все ошибки.

6

Re: Видеоурок по запросам к БД и запросам с помощью АПИ

Я посмотрел лог PHP, пишет истекло время..., на локальном решается увеличением времени, на хостинге что-то не выходит. В любом случае я свой вариант импорта сделал, но интересно как все же правильно сделать средствами RS.

Повысить оценку Понизить оценку

7

Re: Видеоурок по запросам к БД и запросам с помощью АПИ

Каспер, арендуйте VPS, устанавливаем nginx+php, повышаем скиллы, если ещё не повышены.
И смотрим в /var/log
На vps лимиты можно выставить в бесконечность при желании.
Это не средства RS, это средства вебсервера. Т.к. RS не идеален местами, об этом тоже надо помнить.

RS нарисует красную строчку при импорте, Ошибка передачи данных, в консоли светится 500 - что делать будете?!
А тут самый правильный путь смотреть логи сервера, ридискрипт тут вообще ни при делах.

Потом ты пойдешь править tpl, накосячишь в одном символе случайно, по невнимательности - тут тоже RS должен разгребать?

***
Короче, ребята, настраивайте среду - чтобы на любой чих в /var/log/ падало сообщение об ошибке в лог. Ваша, не ваша, нотисы - вообще всё.