PHP 和 MSSQL - 大型文本字段检索

标签 php sql-server

这是我的交易:我有一个在 Windows 服务器上运行 PHP 5(特别是 5.2.5)的网站,它正在与 MSSQL 2005 数据库对话以获取数据。我正在使用最新版本的 ADODB 框架访问数据库。我有一个带有唯一 ID 和文本字段的表。这一切都很好,直到文本字段达到一定大小(尚未能够确定确切的截止点)

当我试图从数据库中检索大约 500 万个字符长的字符串时,问题就出现了。如果我通过 SQL Management Studio 执行此检索并返回所有数据,则此检索工作正常。

当通过 PHP 运行查询时,SQL 服务器不会返回任何错误消息,但它不会返回任何实际数据。

我试过常见的嫌疑人,比如像这样提高 mssql.textlimit 和 textsize 配置选项:

ini_set("mssql.textlimit",2147483647 );
ini_set("mssql.textsize",2147483647 );

我也试过发送“set textsize 2147483647”的查询,没有任何变化。

如果我采用数据的子字符串,理论上我可以将它们拼凑在一起,但是子字符串返回一个限制为 8000 个字符的 varchar,因此需要大约 875 个查询才能获得全部数量,这并不是真正的好主意。

有人有什么想法吗? +

最佳答案

这可能是你的一个选择 max_allowed_pa​​cket
编辑:

'
mysql> SET max_allowed_packet = 2147483647;
mysql> SELECT id, comment FROM table
    -> ORDER BY comment;
'
That should work

关于PHP 和 MSSQL - 大型文本字段检索,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1499724/

相关文章:

php - 为什么这个 shell 脚本没有按预期从 PHP 运行?

javascript - 如何根据javascript中的打开输入来验证文本框

sql-server - 将 bcp 放入带有另一个 sql 语句的事务中

c# - 我是否在 C# 函数中适本地关闭了这个 SQL 连接?

sql - 在这种情况下如何使用 EXEC 或 sp_executeSQL 而不循环?

php - 当我从数据库表中选择下拉值时,页面刷新并且值返回到选择选项

php - 为什么我的Dockerfile不执行命令

c# - 如何在 SQL 中获取二进制图像

php - 数据处理的设计模式? (MVC 替代方案)

c# - 如何从 Unity 连接到数据库