Jump to content
Дизайн и модификация Invision Power Board IPBSkinsBETA
Search In
  • More options...
Find results that contain...
Find results in...
Sign in to follow this  
tasker

Расширенная диагностика ошибок SQL

Recommended Posts

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

 

Бывают ситуации, когда форум выводит сообщение об ошибке в работе с базой данных, но при этом в логе ошибок SQL ничего не появляется. Как можно включить некую расширенную диагностику таких ошибок? Видел скриншоты, где на странице с ошибкой ниже даже отображается запрос SQL, вызвавший ошибку. Как такое включить?

 

Спасибо!

Share this post


Link to post
Share on other sites
Обратите внимание

"Board url", указанный вами в профиле, некорректен, либо недоступен на данный момент. Пожауйста, заполните его, потому что он скорее всего потребуется при диагностике вашей проблемы.

Share this post


Link to post
Share on other sites

Отключить логирования запросов, тогда ошибки будут сыпаться в бразузере. Для этого надо включить режим разработчика (константа IN_DEV в conf_global.php). Но так как в этом режиме обычно могут быть траблы в публичной части форума, проще всего открыть \ips_kernel\classDb.php и

 

выше: if ( $this->return_die == true )

добавить: $this->obj['use_error_log'] = 0;

 

Но лучше все же чтобы логи записывались, и на продакшене такое не делать.

  • Upvote 1

Share this post


Link to post
Share on other sites

Попробую, спасибо. В initdata.php видел несколько настроек по части дебага sql, думал, там можно что-то ещё включить.

Share this post


Link to post
Share on other sites

IPS_SQL_DEBUG_MODE - показывает все запросы на странице, любая страница с параметром &debug=1.

IPS_SQL_DEBUG_LOG - логирует все запросы в файле.

  • Upvote 1

Share this post


Link to post
Share on other sites

IPS_SQL_DEBUG_LOG дополняет обычное логирование при ошибке? Т.е. это параллельная возможность?

Share this post


Link to post
Share on other sites

Нет, он делает лог абсолютно всех запросов которые участвуют при генерации страницы. Полезно когда нужно изучить какие запросы, за сколько и где они выполняются.

Share this post


Link to post
Share on other sites

Для этого надо включить режим разработчика

... или в \admin\sources\base\ipsRegistry.php

 

найти: IN_DEV ? 0 : 1;

заменить на: ( IN_DEV OR ipsRegistry::$settings['sql_debug'] ) ? 0 : 1;

 

Все равно $INFO['sql_debug'] не несет никакой пользы, эта переменная по моему тянется еще со времен старых версий, а сейчас она нигде не используется. Можно ее заюзать для показа в браузере.

Share this post


Link to post
Share on other sites

@siv1987, $settings['sql_debug'] всё же используется в interface\board\index.php

 

//--------------------------------
// Set debug mode
//--------------------------------

$registry->DB()->setDebugMode( ipsRegistry::$settings['sql_debug'] == 1 ? intval($_GET['debug']) : 0 );

 

А что уж делает метод setDebugMode надо смотреть.

Share this post


Link to post
Share on other sites

Регистр как переменная и установка параметров бд вне класса регистра - говорит что вряд-ли это скрипт, который участвует непосредственно при генерации страниц форума.

Share this post


Link to post
Share on other sites

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!

Register a new account

Sign in

Already have an account? Sign in here.

Sign In Now
Sign in to follow this  

  • Recently Browsing   0 members

    No registered users viewing this page.

×
×
  • Create New...