За последние 24 часа нас посетили 26455 программистов и 1545 роботов. Сейчас ищут 818 программистов ...

Ограничения на количество символов не убираются...

Тема в разделе "MySQL", создана пользователем turrel, 16 июн 2011.

  1. turrel

    turrel Активный пользователь

    С нами с:
    12 июн 2011
    Сообщения:
    65
    Симпатии:
    0
    Ограничения на количество символов не убираются... или призраки типа varchar.

    Итак, положим у нас есть столбец с типом varchar(2000). Как видно, он имеет ограничение на количество символов, равное 2000.
    Проделав некоторые операции с таблицей (вставив туда несколько строк), и поняв, что 2000 тысяч символов нам мало, мы пытаемся поменять ограничение на 5000.

    Проблема:
    Однако, все последующие попытки вставить более длинные строки (>2000) приводят к тому, что все они обрезаются до 2000, несмотря на поднятое ограничение. Если сменить тип на TEXT, проблема все равно остается!

    Как бороться с этой напастью? Есть ли идеи, товарищи?
     
  2. tommyangelo

    tommyangelo Старожил

    С нами с:
    6 дек 2009
    Сообщения:
    2.549
    Симпатии:
    0
    Адрес:
    Мариуполь
    посмотреть настройки sql-сервера
     
  3. Goryn

    Goryn Активный пользователь

    С нами с:
    4 апр 2006
    Сообщения:
    398
    Симпатии:
    0
    Адрес:
    Ярославль
  4. turrel

    turrel Активный пользователь

    С нами с:
    12 июн 2011
    Сообщения:
    65
    Симпатии:
    0
    А какие именно настройки смотреть, что/кого подозревать?

    Goryn, спасибо за ссылку, все прочитал и осознал, но это похоже не мой случай. Команда DESCRIBE как раз-таки описывает, что типы в столбце изменились (с varchar на TEXT). Проблема однако осталась.
    Есть подозрения на кэш (mysql? php? сервер?), но как его проверить? Кто сталкивался с подобным?

    Может, кто-нибудь понимает, в чем дело? =)
     
  5. Gromo

    Gromo Активный пользователь

    С нами с:
    24 май 2010
    Сообщения:
    2.786
    Симпатии:
    2
    Адрес:
    Ташкент
    turrel
    есть предположение, что где-то в коде происходит обрезание текста, вставляемого в базу
     
  6. turrel

    turrel Активный пользователь

    С нами с:
    12 июн 2011
    Сообщения:
    65
    Симпатии:
    0
    Gromo, разумное предположение, однако, обрезания в коде нет.

    Я заметил, что текст вставляется в таблицу в полном объеме, необрезанный. Обрезается он почему-то тогда, когда происходит вызов его из базы.

    Код странички вызова такой:
    PHP:
    1. <?
    2. $n=$_GET['n'];
    3. $m=$_GET['m'];
    4.  
    5. include('database_client.php'); //стандартное подключение к базе средствами php
    6.  
    7. $query="SELECT * FROM tb_h_".$m." WHERE id='$n' LIMIT 1";
    8. $result=mysql_query($query) or die(mysql_error());
    9. $myrow=mysql_fetch_row($result);
    10. ....
    11. echo $myrow[15]; //тут должен отображаться текст в ПОЛНОМ ОБЪЕМЕ, но, почему-то, он обрезается, хотя при просмотре через phpmyadmin отображается полностью
    12. ...
    13. ?>
    14.  



    Код добавления текста такой (дальше можете не читать, нижеследующий код вряд ли имеет отношение к проблеме, т.к. работает правильно - выкладываю просто на всякий случай):
    html
    HTML:
    1.  
    2. ...
    3. <form enctype='multipart/form-data' method="post">
    4. <TEXTAREA name="smi_text" cols=80 rows=10></TEXTAREA>
    5. <input type=submit value="Сохранить">
    6. </form>
    7. ...
    8.  
    php код
    PHP:
    1.  
    2. <?
    3. ...
    4. $smi_text=$_POST['smi_text'];
    5. $smi_text=htmlspecialchars(stripslashes(str_replace(array("http:", "//", "www.", "'", "\""), "", $smi_text)));
    6.  
    7. $query="INSERT INTO some_table (some_item) VALUES ('$smi_text')";
    8. $result=mysql_query($query) or die(mysql_error());  
    9. ...
    10. ?>
    11.  
    Код немного упрощен, дабы облегчить жизнь читающему (в основном убраны лишние html теги, коих очень много, и ни на что не влияющие php includes, вставляющие дополнительный html.
     
  7. denisKa

    denisKa Активный пользователь

    С нами с:
    4 сен 2007
    Сообщения:
    46
    Симпатии:
    0
    turrel
    А можешь выложить структуру самой таблицы?
     
  8. tapioka

    tapioka Активный пользователь

    С нами с:
    9 июл 2011
    Сообщения:
    1
    Симпатии:
    0
    добрый день, тоже столкнулась с подобной ситуацией, при публикации текста происходит обрезание. все перерыла ничего не могу понять. подскажите как посмотреть структуру самой таблицы? я так понимаю это в phpadmine надо смотреть?