【问题标题】:mssql_fetch_object text character limit?mssql_fetch_object 文本字符限制?
【发布时间】:2015-10-17 01:33:08
【问题描述】:

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

【问题讨论】:

  • 为什么要使用stripslashes?数据来自数据库的原始数据,将其放在页面上所需要做的就是 htmlspecialchars() 它(假设它是文本而不是 HTML)。
  • @bobince 内容中有一些格式,因为我们正在使用 CK 编辑器。然而,即使我们不使用stripslashes,视图页面中的内容似乎仍然被截断。 :S
  • 我建议做一个 VAR_DUMP() 来查看返回的内容 echo var_dump($page->content);
  • 嘿 Phill,VAR_DUMP() 将字符串(4096)“返回到初始文本的末尾,将 'to' 字中的文本截断。

标签: php sql fetch


【解决方案1】:

我不熟悉在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

【讨论】:

    【解决方案2】:

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

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

    【讨论】:

    • @VolkerK 数据类型是 TEXT,这很奇怪为什么字符被截断。 :S
    【解决方案3】:

    对数据尝试 strlen() 并将长度与数据库中的数据进行比较。它应该可以告诉您问题出在哪里(db 或 php)

    【讨论】:

      【解决方案4】:

      尝试设置

      mssql.textlimit = 10000000
      mssql.textsize  = 10000000
      

      在您的 php.ini 中或使用 ini_set('mssql.textlimi', 10000000); 设置它

      【讨论】:

        【解决方案5】:

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

        例如:

        之前

        从 table1 中选择 desc

        之后

        select convert(text, desc) as desc from table1

        【讨论】:

          猜你喜欢
          • 2016-06-17
          • 2011-07-28
          • 2017-01-23
          • 2012-05-01
          • 2011-07-28
          • 2012-07-18
          • 1970-01-01
          • 1970-01-01
          相关资源
          最近更新 更多