Ограничения на количество символов не убираются... или призраки типа varchar. Итак, положим у нас есть столбец с типом varchar(2000). Как видно, он имеет ограничение на количество символов, равное 2000. Проделав некоторые операции с таблицей (вставив туда несколько строк), и поняв, что 2000 тысяч символов нам мало, мы пытаемся поменять ограничение на 5000. Проблема: Однако, все последующие попытки вставить более длинные строки (>2000) приводят к тому, что все они обрезаются до 2000, несмотря на поднятое ограничение. Если сменить тип на TEXT, проблема все равно остается! Как бороться с этой напастью? Есть ли идеи, товарищи?
А какие именно настройки смотреть, что/кого подозревать? Goryn, спасибо за ссылку, все прочитал и осознал, но это похоже не мой случай. Команда DESCRIBE как раз-таки описывает, что типы в столбце изменились (с varchar на TEXT). Проблема однако осталась. Есть подозрения на кэш (mysql? php? сервер?), но как его проверить? Кто сталкивался с подобным? Может, кто-нибудь понимает, в чем дело? =)
Gromo, разумное предположение, однако, обрезания в коде нет. Я заметил, что текст вставляется в таблицу в полном объеме, необрезанный. Обрезается он почему-то тогда, когда происходит вызов его из базы. Код странички вызова такой: PHP: <? $n=$_GET['n']; $m=$_GET['m']; include('database_client.php'); //стандартное подключение к базе средствами php $query="SELECT * FROM tb_h_".$m." WHERE id='$n' LIMIT 1"; $result=mysql_query($query) or die(mysql_error()); $myrow=mysql_fetch_row($result); .... echo $myrow[15]; //тут должен отображаться текст в ПОЛНОМ ОБЪЕМЕ, но, почему-то, он обрезается, хотя при просмотре через phpmyadmin отображается полностью ... ?> Код добавления текста такой (дальше можете не читать, нижеследующий код вряд ли имеет отношение к проблеме, т.к. работает правильно - выкладываю просто на всякий случай): html HTML: ... <form enctype='multipart/form-data' method="post"> <TEXTAREA name="smi_text" cols=80 rows=10></TEXTAREA> <input type=submit value="Сохранить"> </form> ... php код PHP: <? ... $smi_text=$_POST['smi_text']; $smi_text=htmlspecialchars(stripslashes(str_replace(array("http:", "//", "www.", "'", "\""), "", $smi_text))); $query="INSERT INTO some_table (some_item) VALUES ('$smi_text')"; $result=mysql_query($query) or die(mysql_error()); ... ?> Код немного упрощен, дабы облегчить жизнь читающему (в основном убраны лишние html теги, коих очень много, и ни на что не влияющие php includes, вставляющие дополнительный html.
добрый день, тоже столкнулась с подобной ситуацией, при публикации текста происходит обрезание. все перерыла ничего не могу понять. подскажите как посмотреть структуру самой таблицы? я так понимаю это в phpadmine надо смотреть?