mssql_fetch_object текстовый лимит символов? - PullRequest
2 голосов
/ 01 октября 2009

Я извлекаю некоторые данные из таблицы MSSQL с помощью mssql_fetch_object, но на странице появляется обрезанный текст.

В таблице есть все данные, но на странице просмотра они обрезаются.

Кто-нибудь еще сталкивался с этой проблемой и, возможно, знает об обходном пути? Вот мой код;

<?php include('includes/session.php');
$query = "SELECT content FROM pages WHERE id = '11'";
$result = mssql_query($query);
$page = mssql_fetch_object($result);
?>

<div id="leftcol">
<?php echo stripslashes($page->content) ?>
</div>

Ответы [ 5 ]

4 голосов
/ 13 октября 2009

Я не знаком с использованием mssql в php, но я просто попробовал пример использования mysql без проблем.

Мне это кажется подозрительным

VAR_DUMP () возвращает строку (4096)

поэтому я немного погуглил и нашел эту ссылку

http://www.bram.us/2007/07/05/my-dotd-ms-sql-vs-php-4096-is-the-default-limit/

Он предлагает изменить в файле php.ini значения mssql.textlimit и mssql.textsize на 1048576 (что равно 2ˆ20) по умолчанию 4096. Надеюсь, это поможет.

php.ini

  ; Valid range 0 - 2147483647.  Default = 4096.
  mssql.textlimit = 1048576
  ; Valid range 0 - 2147483647.  Default = 4096.
  mssql.textsize = 1048576
0 голосов
/ 16 октября 2015

У меня возникает проблема silimar, когда я использую PHP для прямого подключения к MS SQL, а тип данных Varchar извлекает только до 255 символов. проблема решается путем преобразования типа данных в текст под запросом, и пока это работает.

Например:

до

выберите desc из таблицы1

после

выберите команду convert (text, desc) как desc из таблицы1

0 голосов
/ 13 октября 2009

Попробуйте установить

mssql.textlimit = 10000000
mssql.textsize  = 10000000

в вашем php.ini или установите его с помощью ini_set('mssql.textlimi', 10000000);

0 голосов
/ 08 октября 2009

попробуйте strlen () для данных и сравните длину с данными в базе данных. Это должно дать вам некоторое представление о том, где проблема (дБ или php)

0 голосов
/ 01 октября 2009

Это поле VARCHAR? http://docs.php.net/mssql_field_length говорит:

Примечание. Примечание для пользователей Windows.
Из-за ограничения в базовом API, используемом PHP (MS DBLib C API), длина полей VARCHAR ограничена 255. Если вам нужно хранить больше данных, используйте вместо этого поле TEXT.
...