Вы здесь

[решено] ошибка PDOException: в функции dblog_watchdog(). Drupal 7

После импорта базы данных на локальный сервер. При входе на сайт вылазит вот такая ошибка.

PDOException: в функции dblog_watchdog() (строка 146 в файле ..........\mySite\modules\dblog\dblog.module).

Хотя все на сервере работало. Файлы и база полностью с сервера.
В связи с проблемой по данной теме и отсутствием ее решения. Столкнулся сам, и не нашел на просторах рунета нормального описания решения данной проблемы, эмпирическим путем обнаружил небольшой хук:

файл modules\dblog\dblog.module
заменяем старый код функции dblog_watchdog() на новый

function dblog_watchdog(array $log_entry) {
  if (!function_exists('drupal_substr')) {
    require_once DRUPAL_ROOT . '/includes/unicode.inc';
  }
  try {
    Database::getConnection('default', 'default')->insert('watchdog')
      ->fields(array(
        'uid' => $log_entry['uid'],
        'type' => drupal_substr($log_entry['type'], 0, 64),
        'message' => $log_entry['message'],
        'variables' => serialize($log_entry['variables']),
        'severity' => $log_entry['severity'],
        'link' => drupal_substr($log_entry['link'], 0, 255),
        'location' => $log_entry['request_uri'],
        'referer' => $log_entry['referer'],
        'hostname' => drupal_substr($log_entry['ip'], 0, 128),
        'timestamp' => $log_entry['timestamp'],
      ))
      ->execute();
  }
  catch (Exception $e) {
    // Exception is ignored so that watchdog does not break pages during the
    // installation process or is not able to create the watchdog table during
    // installation.
  }
}

решилось как оказалось все очень просто.

-2
11
15.08.2016 - 11:01

Комментарии

Аватар пользователя Chi
Chi – 15.08.2016 - 12:42

А какой именно PDOException был? И почему нельзя просто временно выключить dblog модуль?

Аватар пользователя bad4iz
bad4iz – 15.08.2016 - 13:54

каким образом подскажи. я вот не знаю. в списках модулей его у меня его нет

Аватар пользователя Chi
Chi – 15.08.2016 - 14:14

drush dis dblog

Аватар пользователя bad4iz
bad4iz – 05.09.2016 - 16:18

спс

Аватар пользователя xandeadx
xandeadx – 15.08.2016 - 13:01

В чём решение то?

Аватар пользователя bad4iz
bad4iz – 15.08.2016 - 14:12

изменил этим старый код, вот этот

function dblog_watchdog(array $log_entry) {
  Database::getConnection('default', 'default')->insert('watchdog')
    ->fields(array(
      'uid' => $log_entry['uid'],
      'type' => substr($log_entry['type'], 0, 64),
      'message' => $log_entry['message'],
      'variables' => serialize($log_entry['variables']),
      'severity' => $log_entry['severity'],
      'link' => substr($log_entry['link'], 0, 255),
      'location' => $log_entry['request_uri'],
      'referer' => $log_entry['referer'],
      'hostname' => substr($log_entry['ip'], 0, 128),
      'timestamp' => $log_entry['timestamp'],
    ))
    ->execute();
}

который был и после этого у меня сайт заработал

Аватар пользователя Alan Bondarchuk
Alan Bondarchuk – 06.09.2016 - 00:53

с юникодом траблы, надо было обновить ядро

Аватар пользователя bad4iz
bad4iz – 06.09.2016 - 08:53

так это и после обновления ядра вылазит
ядро обновлял 7.34 до 7.50
все равно приходиться так "чинить"

Аватар пользователя Alan Bondarchuk
Alan Bondarchuk – 07.09.2016 - 01:06

что в эксепшене написано? кроме номера строки и файла

Аватар пользователя bad4iz
bad4iz – 08.09.2016 - 10:44

PDOException: в функции dblog_watchdog() (строка 160 в файле D:\OpenServer\domains\zavod\modules\dblog\dblog.module).

Аватар пользователя Геворг Мкртчян
Геворг Мкртчян – 12.09.2016 - 14:44
  1. Модуль dblog в списке модулей называется Database logging.
  2. Перед тем как переписывать код модуля(вообще лучше этого не делать) , постарайся найти суть проблемы.
    Я конечно не ясновидящий, но попробуйте исправить кодировку по умолчанию на UTF-8 сервере и в базе.