Перейти к контенту
  • 0

Ошибка MySQL


Daniel254

Вопрос

В логах пишет вот такую ошибку:

 

 Код ошибки: 1366
Сообщение сервера: Incorrect integer value: '' for column 'marker_last_cleared' at row 1
Страница: /forum/index.php?showforum=63
Запрос: REPLACE INTO ibf_topic_markers (marker_unread,marker_last_cleared,marker_topics_read,marker_last_update,mark
er_member_id,marker_forum_id) VALUES(1,'','a:0:{}',1197732004,1,63)

 

Отчего такое могло случиться и как это лечится?

 

Форум устанавливался на 4-ю версию мускула. После перехода на 5-ю нали вылазить такие вот ошибки

Ссылка на комментарий
Поделиться на других сайтах

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

  • 0

Закинул на сервер абсолютно чистые файлы (тоесть без модов и прочих исправлений) - не помогло.

 

P.S.: Как можно проследить, какие вообще запросы отправляются мускулу при открытии некой страницы?

Ссылка на комментарий
Поделиться на других сайтах

  • 0

Причина ошибки очевидна: MySQL версии 5 стал весьма строгим к используемым типам данных. Поле marker_last_cleared имеет числовой тип, а IPB пытается засунуть в него хоть и пустую, но строку:

''

Вот строчка в файле sources/action_public/forums.php, в которой, судя по вашему описанию, происходит ошибка:

				$this->ipsclass->DB->do_replace_into( 'topic_markers', $save_array, array('marker_member_id','marker_forum_id'), TRUE );

Самое простое решение, которое я бы предложил: перед ней дописать

$save_array['marker_last_cleared'] = intval( $save_array['marker_last_cleared'] );

Это просто принудительное приведение данных к числовому типу. Если там и так было число - останется число. Если там была пустая строка - станет 0, и ошибка исчезнет.

 

PS

P.S.: Как можно проследить, какие вообще запросы отправляются мускулу при открытии некой страницы?

Daniel, это уже отдельный вопрос. Если он тебе интересен для общего развития - создай новую тему, обсудим подробнее.

Ссылка на комментарий
Поделиться на других сайтах

  • 0

Спасибо. Суть проблемы я подозревал, но вот в каком файле, и как именно оформлен запрос к БД не знал. Ещё раз спасибо за помощь.

 

Для тех, кто столкнется с такой же проблемой, как у меня. Данный запрос отправляется и при просмотре темы форума, поэтому intval стоит добавить и в файле topics.php

Ссылка на комментарий
Поделиться на других сайтах

Гость
Эта тема закрыта для публикации сообщений.
×
×
  • Создать...

Важная информация

Находясь на нашем сайте, вы соглашаетесь на использование файлов cookie, а также с нашим положением о конфиденциальности Политика конфиденциальности и пользовательским соглашением Условия использования.