Код: Выделить всё
ERROR: duplicate key value violates unique constraint "phpbb_topics_posted_pkey"
DETAIL: Key (user_id, topic_id)=(955, 15155) already exists.
STATEMENT: INSERT INTO phpbb_topics_posted (user_id, topic_id, topic_posted) VALUES (955, 15155, 1)
ERROR: duplicate key value violates unique constraint "phpbb_topics_posted_pkey"
DETAIL: Key (user_id, topic_id)=(20572, 52154) already exists.
STATEMENT: INSERT INTO phpbb_topics_posted (user_id, topic_id, topic_posted) VALUES (20572, 52154, 1)
Порылся в гугле - проблема известная с 2010 года, но решения ее так и нет.
В результате немного допилил сам.
Файл includes/functions.php:
Код: Выделить всё
FIND (строка 1519):
$sql_ary = array(
'user_id' => (int) $use_user_id,
'topic_id' => (int) $topic_id,
'topic_posted' => 1
);
$db->sql_query('INSERT INTO ' . TOPICS_POSTED_TABLE . ' ' . $db->sql_build_array('INSERT', $sql_ary));
$db->sql_return_on_error(false);Код: Выделить всё
Добавить перед:
$sql = 'SELECT COUNT(*) AS num_records FROM ' . TOPICS_POSTED_TABLE . ' WHERE user_id='.(int) $use_user_id.' AND topic_id='.(int) $topic_id;
$result = $db->sql_query($sql);
$exists = (int) $db->sql_fetchfield('num_records');
$db->sql_freeresult($result);
if ($exists != 1) {Код: Выделить всё
Добавить после:
}Вопрос - ничего я этим не нарушил?

