Я разрабатываю сайт, который будет проверять fetche на разных известных автосалонах (например, Fordham Toyota, Westchester Toyota, Toyota Manhattan и т. Д.) От крупных обзорных сайтов, таких как CitySeach, Dealer Rater , Insider Pages, Yelp, Yahoo-local, Google+ и т. Д. В основном функциональность этого сайта позволяет владельцам бизнеса контролировать свои онлайн-обзоры на основных сайтах обзора.Невозможно удалить записи из базы данных mysql с помощью codeigniter datamapper
Я использую codeigniter и datamapper (версия 1.8) в этом проекте и сталкиваются с некоторыми проблемами для удаления данных из базы данных mysql.
Вот моя часть структуры таблицы следующим образом:
+----------+ +----------------+ +--------------+
| Profile | | profiles_users | | users |
+----------+ +----------------+ +--------------+
| id |<---- | id |----->| id |
| name | | profile_id | | name |
+----------+ | user_id | | email |
| +----------------+ | password |
| +--------------+
+--> +--------------+
| reviews |
+--------------+
| id |
| title |
| author |
| review |
| rating |
| date |
| profile_id |
+--------------+
В таблице «Профиль» Я хранение delar имени (например, как Фордхэмский Toyota, Весчестер Toyota и т.д.) и в таблице «пользователя» Я храню имя владельцев бизнеса. Я использую api для получения обзоров и хранения их в таблице «отзывы» с «идентификатором профиля».
Для каждого профиля может быть более 20000 отзывов. В настоящее время у меня есть avg. 12000 отзывов для каждого профиля.
Всякий раз, когда я собираюсь удалить профиль, обзоры для этого профиля должны быть удалены, но здесь я получаю сообщение об ошибке, как :
«Фатальная ошибка: Разрешены памяти размером 134217728 байт исчерпаны (попытался выделить 20 байт) в /home/business/public_html/system/database/DB_active_rec.php в строке 1999 «
Может кто-нибудь, пожалуйста, предложите мне в этом отношении.
Покажите нам запрос, возможно, мы сможем оптимизировать его! –
Вот мой код: $ profile = new Профиль ($ id); if ($ profile-> result_count()> 0) { foreach ($ profile-> has_many as $ key => $ value) { if ($ key === 'user') continue; $ profile -> {$ key} -> delete_all(); $ profile-> delete ($ profile -> {$ key} -> all); } $ profile-> delete(); } – user2198137
Возможный дубликат [Невозможно удалить более 20000 записей из базы данных mysql с помощью codeigniter datamapper] (http://stackoverflow.com/questions/17940067/unable-to-delete-more-than-20000-records-from- mysql-database-using-codeigniter-d) – Wietse