mssql_fetch_object文本字符限制?

时间:2009-10-01 13:25:51

标签: php sql fetch

我正在使用mssql_fetch_object从MSSQL表中获取一些数据,但文本似乎在页面上被截断。

数据就在表中,但它似乎在视图页面中被切断了。

有没有其他人遇到过这个问题,也许知道一个解决方法?这是我的代码;

<?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 个答案:

答案 0 :(得分:4)

我不熟悉在php中使用mssql,但我刚试了一个使用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(即220),默认值为4096.希望有所帮助。

的php.ini

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

答案 1 :(得分:0)

它是VARCHAR字段吗? http://docs.php.net/mssql_field_length说:

注意:Windows用户注意事项 由于PHP(MS DBLib C API)使用的底层API存在限制,VARCHAR字段的长度限制为255.如果需要存储更多数据,请改用TEXT字段。

答案 2 :(得分:0)

对数据尝试strlen()并将长度与数据库中的数据进行比较。它应该给你一些问题的指示(db或php)

答案 3 :(得分:0)

尝试设置

mssql.textlimit = 10000000
mssql.textsize  = 10000000
在你的php.ini中

或用ini_set('mssql.textlimi', 10000000);

设置它

答案 4 :(得分:0)

当我使用PHP直接连接到MS SQL时,我有silimar问题,而数据类型Varchar最多只能检索255个字符。通过在查询下将数据类型转换为文本来解决问题,现在它可以正常工作。

例如:

从table1中选择desc

选择convert(text,desc)作为desc from table1