Где "режет" ID записи при отправке комментария?

 
Посетитель
small user social cms
МедальАвторитет форумаКубок зрительских симпатий
Сообщений: 1840
работает отправка комментария и запись в БД только есть длина id не более 11 знаков, иначе записывает в базу какой то "левый" id записи.

p.s. ячейку в БД отредактировал расширив значение с 11 до 20 знаков (так как id записи у меня может быть до 20 знаков)

где режется значение отправляемого id записи?
Мой блог с плюшками
Модератор
small user social cms
МедальПочетный донор проектаКубок зрительских симпатийАвторитет форума
Сообщений: 1422
А сменить тип поля не пробовали на бигинт, а не просто длину увеличивать?
Нормальный хостинг, сервера быстрые - пользуюсь сам.
Реклама
cms
Посетитель
small user social cms
МедальАвторитет форумаКубок зрительских симпатий
Сообщений: 1840
lokanaft:
на бигинт
бигинт установлено.

странно записывается.
Если id Записи 314654153 - то так и записывается (в этом случае все нормально работает)
а если id Записи 32165131651351351 - то записывается 2147483647

т.е. это даже не отбрезанное длинное число, а всегда именно 2147483647

p.s. тут я и подумал может какой фильтр в инстанте не дает длинному id пройти?
Редактировалось: 2 раз (Последний: 22 ноября 2013 в 23:58)
Мой блог с плюшками
Посетитель
small user social cms
МедальАвторитет форумаКубок зрительских симпатий
Сообщений: 1840
К тому же оказывается что
2147483647 (231-1), число Мерсенна — максимально возможное значение для 32-битного целого числа со знаком, то есть самое большое целое число, которое можно записать в 32 бита.

Значит должно быть не bigint в этом столбце... а как? чтобы не навредить работе остального в инстанте?

Даже если заменить bigint на text или varchar - Записывается все равно так же.
Прошу прощения за мой француский. Не оч силен в матчасти.
Редактировалось: 2 раз (Последний: 23 ноября 2013 в 00:15)
Мой блог с плюшками
Модератор
small user social cms
МедальКубок зрительских симпатийПочетный донор проекта
Сообщений: 964
kreator, почитайте!
У вас для поля id указан тип INT(11), замените его на тип BIGINT, без указания количества символов.
Хватит париться, живи как нравится!
Посетитель
small user social cms
МедальАвторитет форумаКубок зрительских симпатий
Сообщений: 1840
там еще в компоненте комментариев, в нескольких местах, отправляемые данные значатся как int. может и там что ограничивает? просто поставить bigint не помогает
Мой блог с плюшками
Модератор
small user social cms
МедальКубок зрительских симпатийПочетный донор проекта
Сообщений: 964
kreator, Вы можете подробнее описать. Что именно не получается? Что и как делали, подробно и пошагово? А то прям клещами нужно вытягивать. Что и как вам объяснили, другого толкования не вижу. Тут налицо уже проблема кривых рук. Поэтому давайте разбираться.
1. На бигинт изменили? Где и как?
2. Что записывается в БД?
kreator:
так как id записи у меня может быть до 20 знаков
Почему? Комментов очень много? Дело в том, что поле id - поле с автоинкрементом, т. е.любое значение и как попало туда не занесешь, только по порядку.
BIGINT может содержать цифру из 19 знаков, один бит для хранения знака(плюс или минус). Можно увеличить диапазон до 20 знаков, если указать UNSIGNED.
Ещё одно, ваше требование уже кажется подозрительным. Потому что тип INT, как мы уже видели, может хранить число до 2147483647. Это два с лишним миллиарда(это очень много). ID начинается с 1 и каждый новый комментарий может увеличивать id на один. Поэтому, чтобы исчерпать лимит в течении 10 лет, нужно каждый день писать примерно по 500 тыс. комментов. Или я чего не понимаю?
Хватит париться, живи как нравится!
Модератор
small user social cms
МедальПочетный донор проектаКубок зрительских симпатийАвторитет форума
Сообщений: 1422
Марат, некоторые хостеры (sweb) умудряются перенастраивать автоинкремент например на 10 и объясняют это повышением быстродействие laugh
Нормальный хостинг, сервера быстрые - пользуюсь сам.
Посетитель
small user social cms
МедальАвторитет форумаКубок зрительских симпатий
Сообщений: 1840
прошу прощения. это не id с автоикриментом. это target_id записи. если число не более 10 знаков то все записывается норм. если больше то режет.
Мой блог с плюшками
Посетитель
small user social cms
МедальАвторитет форумаКубок зрительских симпатий
Сообщений: 1840
а вот:
Код PHP:
  1. $target_id = cmsCore::request('target_id', 'int', 0);
эта строчка в файле addform.php и в других файлах компонента "Комментарии" может влиять на данные?
там что-то проходит как str а target_id как int
Мой блог с плюшками
Посетитель
small user social cms
МедальАвторитет форумаКубок зрительских симпатий
Сообщений: 1840
так и было.
в компоненте комментариев сменит int на str, там где предназначалось для target_id и все заработало
Мой блог с плюшками
В начало страницы
Предыдущая темаСледующая тема Перейти на форум: