PHP 可以使用很多数据库系统, 最经常用的是MySQL. 然而, SQL Server 是一个非常强大的,可以替换MySQL 的数据库, 很值得我们在大的项目中考虑使用。
然而, 在PHP中 mssql 的扩展设置很容易被忽略,所以会导致一些奇怪的行为。 我在最近的一个项目中遇到这样一个不常见的问题, 每次从Text 类型的列中获取数据,都会被截断为大约4000个字符
如果你也正经历这样类似的问题, 这里有一些方法可以解决它。
你需要通过PHP增加text 类型列从数据库的最大返回值。 你可以用这样一个简单的sql 查询
SET TEXTSIZE 2147483647
你可以运行下面的php 脚本(最好是在建立连接后执行)
mssql_query("SET TEXTSIZE 2147483647");
一个比较好的解决这个问题方式是在php.ini 中修改 “textlimit” 和 “textsize” , 像这样
mssql.textlimit = 2147483647
mssql.textsize = 2147483647
在上面的例子中, 我用了数值 "2147483647" (字节数), 你是没有必要设置这么高的, 然而这样做也是没有伤害的。
为什么这个问题不会发生在ASP ? 当我们使用Microsoft's SQL Server ODBC driver and OLE DB Provider 时, 当连接建立成功后,textsize 自动被设置成了 2147483647。
原文: https://www.addedbytes.com/blog/sql-server-php-truncating-text