数据以64512个字符结束-MSSQL//PHP//OPENSuSE//APACHE2

数据以64512个字符结束-MSSQL//PHP//OPENSuSE//APACHE2,php,sql-server,Php,Sql Server,我正在通过PHP使用Linux的FREETDS驱动程序连接到Windows服务器上的mssql数据库 运行应用程序的web服务器运行OPENSuSE、Apache2和PHP,并使用FreeTDS驱动程序连接到Windows box,这样做很好 我可以执行存储过程并查看它生成的数据,但每个数组值的输出数据似乎停止在64512字节(在PHP中使用strlen进行检查)-这是PHP端还是MS端的问题?有人知道我如何修复它吗?是否检查了配置文件并增加了文本大小?见 另请参见freetds.conf中的文

我正在通过PHP使用Linux的FREETDS驱动程序连接到Windows服务器上的mssql数据库

运行应用程序的web服务器运行OPENSuSE、Apache2和PHP,并使用FreeTDS驱动程序连接到Windows box,这样做很好


我可以执行存储过程并查看它生成的数据,但每个数组值的输出数据似乎停止在64512字节(在PHP中使用strlen进行检查)-这是PHP端还是MS端的问题?有人知道我如何修复它吗?

是否检查了配置文件并增加了文本大小?见

另请参见freetds.conf中的文本大小选项


也可以在.htaccess中添加这些值:

php_value mssql.textlimit 10000000

php_value mssql.textsize 10000000

我也遇到了同样的问题,我通过将mssql.textlimit和mssql.textsize的值增加到任意值来修复它。

这里的其他答案讨论了一些相当任意的限制。但是PHP配置文件本身显示了以下内容:;这是我的macOS设置中的PHP 5.6.10:

; Valid range 0 - 2147483647.  Default = 4096.
; mssql.textlimit = 4096

; Valid range 0 - 2147483647.  Default = 4096.
; mssql.textsize = 4096
很明显,默认值是4096,有效范围是0到2147483647。因此,如果数据在返回时被截断,只需按如下所示调整这些值即可将其最大化:

; Valid range 0 - 2147483647.  Default = 4096.
mssql.textlimit = 2147483647

; Valid range 0 - 2147483647.  Default = 4096.
mssql.textsize = 2147483647

然后重新启动Apache,将新的
php.ini
config安装到位。

yep,问题是freetds.conf中的文本大小,都已修复。谢谢你的帮助。
; Valid range 0 - 2147483647.  Default = 4096.
mssql.textlimit = 2147483647

; Valid range 0 - 2147483647.  Default = 4096.
mssql.textsize = 2147483647