Где "режет" ID записи при отправке комментария?
p.s. ячейку в БД отредактировал расширив значение с 11 до 20 знаков (так как id записи у меня может быть до 20 знаков)
где режется значение отправляемого id записи?
бигинт установлено.на бигинт
странно записывается.
Если id Записи 314654153 — то так и записывается (в этом случае все нормально работает)
а если id Записи 32165131651351351 — то записывается 2147483647
т.е. это даже не отбрезанное длинное число, а всегда именно 2147483647
p.s. тут я и подумал может какой фильтр в инстанте не дает длинному id пройти?
2147483647 (231-1), число Мерсенна — максимально возможное значение для 32-битного целого числа со знаком, то есть самое большое целое число, которое можно записать в 32 бита.
Значит должно быть не bigint в этом столбце… а как? чтобы не навредить работе остального в инстанте?
Даже если заменить bigint на text или varchar — Записывается все равно так же.
1. На бигинт изменили? Где и как?
2. Что записывается в БД?
Почему? Комментов очень много? Дело в том, что поле id — поле с автоинкрементом, т. е.любое значение и как попало туда не занесешь, только по порядку.так как id записи у меня может быть до 20 знаков
BIGINT может содержать цифру из 19 знаков, один бит для хранения знака(плюс или минус). Можно увеличить диапазон до 20 знаков, если указать UNSIGNED.
Ещё одно, ваше требование уже кажется подозрительным. Потому что тип INT, как мы уже видели, может хранить число до 2147483647. Это два с лишним миллиарда(это очень много). ID начинается с 1 и каждый новый комментарий может увеличивать id на один. Поэтому, чтобы исчерпать лимит в течении 10 лет, нужно каждый день писать примерно по 500 тыс. комментов. Или я чего не понимаю?
$target_id = cmsCore::request('target_id', 'int', 0);
там что-то проходит как str а target_id как int
в компоненте комментариев сменит int на str, там где предназначалось для target_id и все заработало