Модераторы: skyboy, MoLeX, Aliance, ksnk
  

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> Урезание значение переменной при получение из базы 
V
    Опции темы
Vbif
  Дата 27.4.2008, 17:37 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


Профиль
Группа: Участник
Сообщений: 59
Регистрация: 25.2.2006
Где: Реутов

Репутация: нет
Всего: нет



Появилась такая проблема.
При подключение к базе mssql и выборке оттуда значение в ассоциативный массив, урезается значение текстовых переменных.
К примеру в базе хранится такой вот кусок текста.

Код

В ближайшее время будут проведены интервью со многими из сотрудников нашей компании. Посмотрим на коллегу справа, а теперь на коллегу слева, кто знает, может, Вы учитесь в одном ВУЗе и у вас одинаковые интересы и по какой-то чудовищной случайности Вы так ещё и не успели познакомиться, пора пролить на это свет. Хотим знать всё, хотим знать про всех=).Всё самое сокровенное и интересное Вы сможете прочитать на страницах нашего портала.


данный текст состоит из 437 символов.

далее из php выполняем запрос на выборку из базы
Код

$query_id = mssql_query("SELECT FULL_NEWS FROM BASE_TABLE");
$result = @ mssql_fetch_assoc($query_id);
 echo $result['FULL_NEWS'];


и на экран выводится уже следующий текст 
Код

 В ближайшее время будут проведены интервью со многими из сотрудников нашей компании. Посмотрим на коллегу справа, а теперь на коллегу слева, кто знает, может, Вы учитесь в одном ВУЗе и у вас одинаковые интересы и по какой-то чудовищной случайности Вы так 


данный текст состоит из 256 символов.

Я понимаю что проблема состоит в типе данных и данная проблема решается на стороне php а не mssql. Но отладить так и не получилось. 
На всякий случай пробывал мучать вот эти параметры в конфиге
; Valid range 0 - 2147483647.  Default = 4096.
;mssql.textlimit = 2147483647

; Valid range 0 - 2147483647.  Default = 4096.
;mssql.textsize = 2147483647
но не помогло=)
Заранее спасибо за помощь.

Это сообщение отредактировал(а) Vbif - 27.4.2008, 17:40
PM MAIL WWW ICQ   Вверх
Feldmarschall
Дата 27.4.2008, 18:04 (ссылка) |    (голосов:1) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок
****


Профиль
Группа: Участник
Сообщений: 2641
Регистрация: 11.12.2007

Репутация: 1
Всего: 32



Цитата(Vbif @  27.4.2008,  17:37 Найти цитируемый пост)
Я понимаю что проблема состоит в типе данных и данная проблема решается на стороне php а не mssql

а вот и не угадал. все наоборот
PM   Вверх
Vbif
Дата 27.4.2008, 18:27 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


Профиль
Группа: Участник
Сообщений: 59
Регистрация: 25.2.2006
Где: Реутов

Репутация: нет
Всего: нет



в базе в ячейке содержится полный текст, не урезанный.
говорить что не угадал и при это не аргументировать свой ответ не слишком профессионально.

Это сообщение отредактировал(а) Vbif - 27.4.2008, 18:37
PM MAIL WWW ICQ   Вверх
Fortop
Дата 27.4.2008, 20:01 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


Профиль
Группа: Завсегдатай
Сообщений: 2200
Регистрация: 13.11.2007
Где: Донецк

Репутация: 3
Всего: 42



Vbif, а в PHP нет ограничений на длину строки в 256 символов

Да и еще такой момент, если ты эти параметры

; Valid range 0 - 2147483647.  Default = 4096.
;mssql.textlimit = 2147483647

; Valid range 0 - 2147483647.  Default = 4096.
;mssql.textsize = 2147483647

мучал именно в таком виде (с ; в начале, то толку от таких мучений мало smile )
Плюс после изменений php.ini, обычно надо рестартовать Apache. Поскольку PHP обычно подключают, как модуль.


--------------------
Мир это Я.
Живее всех живых.
PM MAIL   Вверх
Vbif
Дата 28.4.2008, 09:32 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


Профиль
Группа: Участник
Сообщений: 59
Регистрация: 25.2.2006
Где: Реутов

Репутация: нет
Всего: нет



=))) не ну конечно же я раскомментировал строки и изменял значение 4096 дефолтовое на максимальное, и у меня не apache a iis 6.0 php подключен как cgi.
PM MAIL WWW ICQ   Вверх
Vbif
Дата 30.4.2008, 10:25 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


Профиль
Группа: Участник
Сообщений: 59
Регистрация: 25.2.2006
Где: Реутов

Репутация: нет
Всего: нет



на многих форумах читал что необходимого изменить значение
mssql.textsize = 2147483647
но данный способ не помог, если ещё какие-либо пути решения?

PM MAIL WWW ICQ   Вверх
Vbif
Дата 2.5.2008, 14:57 (ссылка) |    (голосов:1) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


Профиль
Группа: Участник
Сообщений: 59
Регистрация: 25.2.2006
Где: Реутов

Репутация: нет
Всего: нет



нашёл решение проблемы.. если кому будет интересно..
первое необходимо следующее прописать...
Код

 $db->query ('SET TEXTSIZE 65536');
 ini_set ('mssql.textlimit' , '65536');
 ini_set ('mssql.textsize' , '65536'); 

далее когда выполняем запрос к базе поле которое содержит большое текстовое значение необходимо конвертировать в тип text
Код

CONVERT(TEXT, S_NEWS_ITEM.LONG_ABSTRACT)

PM MAIL WWW ICQ   Вверх
  
Ответ в темуСоздание новой темы Создание опроса
0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | PHP: Базы Данных | Следующая тема »


 




[ Время генерации скрипта: 0.0736 ]   [ Использовано запросов: 22 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.