Перейти к публикации
Дизайн и модификация IPS Community IPBSkinsBETA
Поиск в
  • Дополнительно...
Искать результаты, содержащие...
Искать результаты в...
tasker

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

Рекомендованные сообщения

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

 

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

 

Спасибо!

Поделиться сообщением


Ссылка на сообщение
Обратите внимание

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

Поделиться сообщением


Ссылка на сообщение

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

 

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

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

 

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

  • Upvote 1

Поделиться сообщением


Ссылка на сообщение

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

Поделиться сообщением


Ссылка на сообщение

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

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

  • Upvote 1

Поделиться сообщением


Ссылка на сообщение

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

Поделиться сообщением


Ссылка на сообщение

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

Поделиться сообщением


Ссылка на сообщение

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

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

 

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

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

 

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

Поделиться сообщением


Ссылка на сообщение

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

 

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

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

 

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

Поделиться сообщением


Ссылка на сообщение

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

Поделиться сообщением


Ссылка на сообщение

Создайте аккаунт или войдите в него для комментирования

Вы должны быть пользователем, чтобы оставить комментарий

Создать аккаунт

Зарегистрируйтесь для получения аккаунта. Это просто!

Зарегистрировать аккаунт

Войти

Уже зарегистрированы? Войдите здесь.

Войти сейчас

  • Сейчас на странице   0 пользователей

    Нет пользователей, просматривающих эту страницу.

×
×
  • Создать...