2

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

5 回答 5

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(即 2^20),因为默认值为 4096。希望对您有所帮助。

php.ini

  ; Valid range 0 - 2147483647.  Default = 4096.
  mssql.textlimit = 1048576
  ; Valid range 0 - 2147483647.  Default = 4096.
  mssql.textsize = 1048576
于 2009-10-13T10:16:47.337 回答
1

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

注意:Windows 用户注意
由于 PHP 使用的底层 API(MS DBLib C API)的限制,VARCHAR 字段的长度限制为 255。如果您需要存储更多数据,请改用 TEXT 字段。
于 2009-10-01T13:41:22.230 回答
0

在数据上尝试 strlen() 并将长度与数据库中的数据进行比较。它应该让您知道问题出在哪里(db 或 php)

于 2009-10-08T06:04:30.250 回答
0

尝试设置

mssql.textlimit = 10000000
mssql.textsize  = 10000000

在您的 php.ini 中或将其设置为ini_set('mssql.textlimi', 10000000);

于 2009-10-13T16:05:14.170 回答
0

当我使用 PHP 直接连接到 MS SQL 时,我遇到了类似的问题,并且数据类型 Varchar 最多只能检索 255 个字符。该问题通过将查询下的数据类型转换为文本来解决,并且现在可以使用。

例如:

从 table1 中选择 desc

从 table1 中选择 convert(text, desc) 作为 desc

于 2015-10-16T17:33:08.393 回答