Ошибка PDOException

Главные вкладки

Аватар пользователя mzs mzs 20 января 2016 в 5:42

Друзья, приветствую!
Использую Drupal 7.
Недавно заметил, что в журнале событий стало генерироваться масса ошибок "PDOException: в функции _menu_router_save() (строка 3898 в файле /var/www/includes/menu.inc)".
Не могу с уверенностью сказать с какого времени это началось и что стало причиной, но, возможно, эта ошибка является причиной того, что у меня сейчас не отрабатывается hook_menu. Т.е. те страницы, которые были когда-то созданы - работают, а новые (или изменения) системой как будто не видятся.
В hook_menu добавлял dpm($items); . Вывод показывает, что в $items присутствуют необходимые пункты, а вот достучаться до этих новых страниц не выходит - ловлю 404 ошибку.

Подскажите, как решить PDOException: в функции _menu_router_save() (строка 3898 в файле /var/www/includes/menu.inc) ?
чтобы не рыться, вот этот кусок (нужную строку пометил):

function _menu_router_save($menu, $masks) {
  // Delete the existing router since we have some data to replace it.
  db_truncate('menu_router')->execute();

  // Prepare insert object.
  $insert = db_insert('menu_router')
    ->fields(array(
      'path',
      'load_functions',
      'to_arg_functions',
      'access_callback',
      'access_arguments',
      'page_callback',
      'page_arguments',
      'delivery_callback',
      'fit',
      'number_parts',
      'context',
      'tab_parent',
      'tab_root',
      'title',
      'title_callback',
      'title_arguments',
      'theme_callback',
      'theme_arguments',
      'type',
      'description',
      'position',
      'weight',
      'include_file',
    ));

  $num_records = 0;

  foreach ($menu as $path => $item) {
//        dpm($item);
    // Fill in insert object values.
    $insert->values(array(
      'path' => $item['path'],
      'load_functions' => $item['load_functions'],
      'to_arg_functions' => $item['to_arg_functions'],
      'access_callback' => $item['access callback'],
      'access_arguments' => serialize($item['access arguments']),
      'page_callback' => $item['page callback'],
      'page_arguments' => serialize($item['page arguments']),
      'delivery_callback' => $item['delivery callback'],
      'fit' => $item['_fit'],
      'number_parts' => $item['_number_parts'],
      'context' => $item['context'],
      'tab_parent' => $item['tab_parent'],
      'tab_root' => $item['tab_root'],
      'title' => (empty($item['title']) ? 'Заголовок' : $item['title']),
      'title_callback' => $item['title callback'],
      'title_arguments' => ($item['title arguments'] ? serialize($item['title arguments']) : ''),
      'theme_callback' => $item['theme callback'],
      'theme_arguments' => serialize($item['theme arguments']),
      'type' => $item['type'],
      'description' => $item['description'],
      'position' => $item['position'],
      'weight' => $item['weight'],
      'include_file' => $item['include file'],
    ));

    // Execute in batches to avoid the memory overhead of all of those records
    // in the query object.
    if (++$num_records == 20) {

$insert->execute();  // вот эта строка 3898

      $num_records = 0;
    }

  }
  // Insert any remaining records.
  $insert->execute();
  // Store the masks.
  variable_set('menu_masks', $masks);

  return $menu;
}

Комментарии