Ну вот, мой подробный отчем мытарств с Кармой:
Изначальная ошибка:
Код: Выделить всё
SQL ERROR [ mysql4 ]
Data truncated for column 'post_karma_search' at row 1 [1265]
SQL
UPDATE phpbb_posts SET post_karma = post_karma - 1, post_karma_powered = post_karma_powered - 5, post_karma_count = post_karma_count - 1, post_karma_search = (post_karma / post_karma_count), post_karma_search_powered = (post_karma_powered / post_karma_count) WHERE post_id = 2
BACKTRACE
FILE: includes/db/mysql.php
LINE: 174
CALL: dbal->sql_error()
FILE: includes/mods/acp/acp_karma.php
LINE: 224
CALL: dbal_mysql->sql_query()
FILE: includes/functions_module.php
LINE: 516
CALL: acp_karma->main()
FILE: adm/index.php
LINE: 74
CALL: p_master->load_active()
Тогда делаю последовательно обновления к БД:
UPDATE phpbb_posts SET post_karma=0 WHERE post_karma IS NULL
UPDATE phpbb_posts SET post_karma_powered=0 WHERE post_karma_powered IS NULL
UPDATE phpbb_posts SET post_karma_count=0 WHERE post_karma_count IS NULL
UPDATE phpbb_topics SET topic_karma=0 WHERE topic_karma IS NULL
UPDATE phpbb_topics SET topic_karma_powered=0 WHERE topic_karma_powered IS NULL
UPDATE phpbb_topics SET topic_karma_count=0 WHERE topic_karma_count IS NULL
Обновляю кэш. Пробую удалить репутацию. Ошибка:
Код: Выделить всё
QL ERROR [ mysql4 ]
Data truncated for column 'post_karma_search' at row 1 [1265]
SQL
UPDATE phpbb_posts SET post_karma = post_karma - 1, post_karma_powered = post_karma_powered - 1, post_karma_count = post_karma_count - 1, post_karma_search = (post_karma / post_karma_count), post_karma_search_powered = (post_karma_powered / post_karma_count) WHERE post_id = 4
BACKTRACE
FILE: includes/db/mysql.php
LINE: 174
CALL: dbal->sql_error()
FILE: includes/mods/acp/acp_karma.php
LINE: 224
CALL: dbal_mysql->sql_query()
FILE: includes/functions_module.php
LINE: 516
CALL: acp_karma->main()
FILE: adm/index.php
LINE: 74
CALL: p_master->load_active()
Нахожу в
includesmodsacpacp_karma.php
Код: Выделить всё
post_karma_search = (post_karma / post_karma_count)
заменяю на
Код: Выделить всё
post_karma_search = IFNULL((post_karma / post_karma_count)0)
нахожу
Код: Выделить всё
post_karma_search_powered = (post_karma_powered / post_karma_count)
заменяю на
Код: Выделить всё
post_karma_search_powered = IFNULL((post_karma_powered / post_karma_count)0)
нахожу:
Код: Выделить всё
topic_karma_search = ((topic_karma / topic_karma_count) / (topic_replies + 1))
заменяю на
нахожу:
Код: Выделить всё
topic_karma_search = IFNULL(((topic_karma / topic_karma_count) / (topic_replies + 1))0)
нахожу:
Код: Выделить всё
topic_karma_search_powered = ((topic_karma_powered / topic_karma_count) / (topic_replies + 1))
заменяю на
Код: Выделить всё
topic_karma_search_powered = IFNULL(((topic_karma_powered / topic_karma_count) / (topic_replies + 1))0)
Нахожу в
includesmodsacpacp_karma.php
Код: Выделить всё
post_karma_search = (post_karma / post_karma_count)
заменяю на
Код: Выделить всё
post_karma_search = IFNULL((post_karma / post_karma_count)0)
нахожу
Код: Выделить всё
post_karma_search_powered = (post_karma_powered / post_karma_count)
заменяю на
Код: Выделить всё
post_karma_search_powered = IFNULL((post_karma_powered / post_karma_count)0)
нахожу:
Код: Выделить всё
topic_karma_search = ((topic_karma / topic_karma_count) / (topic_replies + 1))
заменяю на
нахожу:
Код: Выделить всё
topic_karma_search = IFNULL(((topic_karma / topic_karma_count) / (topic_replies + 1))0)
нахожу:
Код: Выделить всё
topic_karma_search_powered = ((topic_karma_powered / topic_karma_count) / (topic_replies + 1))
заменяю на
Код: Выделить всё
topic_karma_search_powered = IFNULL(((topic_karma_powered / topic_karma_count) / (topic_replies + 1))0)
Затем ошибка:
Код: Выделить всё
SQL ERROR [ mysql4 ]
You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near '0), post_karma_search_powered = IFNULL((post_karma_powered / post_karma_count)0)' at line 2 [1064]
SQL
UPDATE phpbb_posts SET post_karma = post_karma - 1, post_karma_powered = post_karma_powered - 5, post_karma_count = post_karma_count - 1, post_karma_search = IFNULL((post_karma / post_karma_count)0), post_karma_search_powered = IFNULL((post_karma_powered / post_karma_count)0) WHERE post_id = 2
BACKTRACE
FILE: includes/db/mysql.php
LINE: 174
CALL: dbal->sql_error()
FILE: includes/mods/acp/acp_karma.php
LINE: 224
CALL: dbal_mysql->sql_query()
FILE: includes/functions_module.php
LINE: 516
CALL: acp_karma->main()
FILE: adm/index.php
LINE: 74
CALL: p_master->load_active()
Добавлено спустя 21 минуту 26 секунд:
Вторая попытка:
1. Восстанавливаю БД.
2. Изменяю тип полей в таблице posts:
Изменить тип полей
post_karma
post_karma_powered
post_karma_search
post_karma_search_powered
на INT(8)
Получаю ошибку:
Код: Выделить всё
SQL ERROR [ mysql4 ]
Out of range value adjusted for column 'post_karma_count' at row 1 [1264]
SQL
UPDATE phpbb_posts SET post_karma = post_karma - 1, post_karma_powered = post_karma_powered - 5, post_karma_count = post_karma_count - 1, post_karma_search = (post_karma / post_karma_count), post_karma_search_powered = (post_karma_powered / post_karma_count) WHERE post_id = 5
BACKTRACE
FILE: includes/db/mysql.php
LINE: 174
CALL: dbal->sql_error()
FILE: includes/mods/acp/acp_karma.php
LINE: 224
CALL: dbal_mysql->sql_query()
FILE: includes/functions_module.php
LINE: 516
CALL: acp_karma->main()
FILE: adm/index.php
LINE: 74
CALL: p_master->load_active()
Нахожу в
\includes\mods\acp\acp_karma.php
Код: Выделить всё
post_karma_search = (post_karma / post_karma_count)
заменяю на
Код: Выделить всё
post_karma_search = IFNULL((post_karma / post_karma_count)0)
нахожу
Код: Выделить всё
post_karma_search_powered = (post_karma_powered / post_karma_count)
заменяю на
Код: Выделить всё
post_karma_search_powered = IFNULL((post_karma_powered / post_karma_count)0)
нахожу:
Код: Выделить всё
topic_karma_search = ((topic_karma / topic_karma_count) / (topic_replies + 1))
заменяю на
нахожу:
Код: Выделить всё
topic_karma_search = IFNULL(((topic_karma / topic_karma_count) / (topic_replies + 1))0)
нахожу:
Код: Выделить всё
topic_karma_search_powered = ((topic_karma_powered / topic_karma_count) / (topic_replies + 1))
заменяю на
Код: Выделить всё
topic_karma_search_powered = IFNULL(((topic_karma_powered / topic_karma_count) / (topic_replies + 1))0)
Нахожу в
\includes\mods\acp\acp_karma.php
Код: Выделить всё
post_karma_search = (post_karma / post_karma_count)
заменяю на
Код: Выделить всё
post_karma_search = TRUNCATE((post_karma / post_karma_count)0)
нахожу
Код: Выделить всё
post_karma_search_powered = (post_karma_powered / post_karma_count)
заменяю на
Код: Выделить всё
post_karma_search_powered = TRUNCATE((post_karma_powered / post_karma_count)0)
нахожу:
Код: Выделить всё
topic_karma_search = ((topic_karma / topic_karma_count) / (topic_replies + 1))
заменяю на
нахожу:
Код: Выделить всё
topic_karma_search = TRUNCATE(((topic_karma / topic_karma_count) / (topic_replies + 1))0)
нахожу:
Код: Выделить всё
topic_karma_search_powered = ((topic_karma_powered / topic_karma_count) / (topic_replies + 1))
заменяю на
Код: Выделить всё
topic_karma_search_powered = TRUNCATE(((topic_karma_powered / topic_karma_count) / (topic_replies + 1))0)
Снова ошибка:
Код: Выделить всё
SQL ERROR [ mysql4 ]
You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near '0), post_karma_search_powered = TRUNCATE((post_karma_powered / post_karma_count)' at line 2 [1064]
SQL
UPDATE phpbb_posts SET post_karma = post_karma - 1, post_karma_powered = post_karma_powered - 5, post_karma_count = post_karma_count - 1, post_karma_search = TRUNCATE((post_karma / post_karma_count)0), post_karma_search_powered = TRUNCATE((post_karma_powered / post_karma_count)0) WHERE post_id = 5
BACKTRACE
FILE: includes/db/mysql.php
LINE: 174
CALL: dbal->sql_error()
FILE: includes/mods/acp/acp_karma.php
LINE: 224
CALL: dbal_mysql->sql_query()
FILE: includes/functions_module.php
LINE: 516
CALL: acp_karma->main()
FILE: adm/index.php
LINE: 74
CALL: p_master->load_active()