Dolbaldor-Bender: когда prepare() -> вы определяете НОВЫЙ объект класса $DBH. И он хранит в себе все методы этого класса! (один из них: execute()) и живет пока скрипт не завершит работу. А теперь вы prepare() вызвали 100 или 1000 раз и создали разные объекты класса....
Т.е. Вы "отжираете" оперативную память почти в прямом смысле.
Так понятнее?
Назар Мокринский: хотел сразу такой же код написать, но когда речь в вопросе про циклы - этот код: неверный ответ на вопрос.
(хотя сам код - верный и делает тоже самое...)
Welfr: я бы нашел близкую по смыслу/типу игру к своей и посмотрел бы на то, как она сделана (платформы, движок, диз, логика, рейтинг и остальное) и почитал бы еще в интернете по этапам как и что делается в нескольких разных местах и сравнил бы.
Никакие "посиделки" больше информации, чем есть в интернете не дадут.