【发布时间】:2012-07-23 00:05:03
【问题描述】:
当我在 php 中使用 MSSQL 读取具有非常长内容的字段时,我得到一个错误
警告:mssql_query() [function.mssql-query]:Unicode 唯一排序规则中的 Unicode 数据或 ntext 数据无法使用 DB-Library(例如 ISQL)或 ODBC 版本 3.7 或更早版本发送到客户端
我在网上搜索了一下,发现要解决这个问题,发现需要对结果进行强制转换才能得到可读的文本。
SELECT CAST(Content AS TEXT) AS Content FROM myTable
但是,我遇到的另一个问题是文本数据在 4096 个字符后被截断。是否有进一步阅读文本,或转换返回数据的其他选项?
谢谢
【问题讨论】:
-
数据库中
Content是什么类型?你确定它存储了超过 4096 个字符吗? -
内容是 ntext。而且我确信它存储了超过 4096 个字符。当我通过 myLittleAdmin 读取数据库时,它在我的 PHP 代码中被截断后显示更多。
-
什么版本的 SQL Server?为什么要使用 NTEXT 而不是 NVARCHAR(MAX)?您如何通过计算 Management Studio 中的输出来验证有 4096 个字符?这会被应用程序截断,并且绝对不会反映数据库中的内容。
标签: php sql-server string casting truncate