Следите за целостностью БД: топик -> блог

Сегодня на сайте вылезла ошибка, которая ложила плагин похожих записей. Советую проверить БД своего сайта на целостность (особенно если он существует давно) и если Вы когда-либо удаляли блоги. Этот топик немного поможет Вам в этом.

Ошибка вот такая:
<a class="topic_title" href="
Fatal error: Call to a member function getType() on a non-object in
/var/www/***/classes/modules/topic/entity/Topic.entity.class.php on line 356


Или вот такая:
Fatal error: Call to a member function getType() on a non-object in
/var/www/***/classes/actions/ActionBlog.class.php on line 665


Так вот, лично у меня проблема была в том, что некоторые блоги были удалены. Но остались топики, которые были все еще связаны с ними. Вот кусок скрипта, который поможет Вам разобраться, есть ли у вас такая проблема. Он вернет все бомжующие топики. Если ничего не вернет — то у Вас все хорошо. Следите за целостностью БД. Это очень важно ;)

ВНИМАНИЕ!!! ЛЮДЯМ КОТОРЫМ НЕ ПОНИМАЮТ О ЧЕМ ТОПИК Я НЕ СОВЕТУЮ ТРОГАТЬ ЧТО-ЛИБО В БД. МОЖЕТ СТАТЬ ЕЩЕ ХУЖЕ.
SELECT  *
FROM    prefix_topic t
WHERE   NOT EXISTS
        (
        SELECT  null 
        FROM    prefix_blog b
        WHERE   b.blog_id = t.blog_id
        )

4 комментария

avatar
а каким обазом были удалены топики? база в InnoDB?
avatar
если б InnoDB — топики б ушли сами. А так ето вероятнее всего MyISAM
avatar
Вообще InnoDB. Удалял не топики, а блоги плагина компании. В ручную через базы. Топики забыл проверить и вот :)
avatar
ошибок никаких нет и связей тоже, ошибка все равно осталась, ошибка появляется при включенном плагине VKPOST, может кто ставил, настраивал его, подскажите пожалуйста.
Только зарегистрированные и авторизованные пользователи могут оставлять комментарии.