我正在使用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>
答案 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