通过pdo_dblib选择查询到MS-MSQL,将列结果截断为2kb

时间:2015-04-15 18:36:47

标签: php sql-server

标题是对正在发生的事情的一个很好的总结。我有一个基于Zend Framework 2构建的php应用程序,并使用pdo_dblib驱动程序在CentOS上运行,以连接到MSSQL服务器以实现持久性。

我正在尝试将一些相当长的编码数据字符串存储到其中一个表中的nvarchar(max)列中,到目前为止,我已经证明我可以成功地将数据插入到表中。我通过我为调试目的编写的桌面C#app执行SELECT查询,验证了存储的数据是完整和正确的。

然而,当我通过ZF2适配器运行完全相同的SELECT查询(绕过查询构建器进行调试)时,我收到一个截断的响应,长度恰好是2048个字符。作为参考,测试串的长度大约为110kb。

我在另一个连接到MySql的应用程序中有类似的表结构和查询,从未见过这个问题。

有什么建议吗?

C#select

 using (SqlConnection connection = new SqlConnection(connectionString))
        {
            connection.Open();
            // Do work here; connection closed on following line.
            using (SqlCommand command = new SqlCommand("select data from fil_tab where uid = 10", connection))
            using (SqlDataReader reader = command.ExecuteReader())
            {
                while (reader.Read())
                {
                    int value = reader.GetString(0).Count(); // value gives me the correct char count
                }
            }
        }

匹配的php

 public function test(){
    $test = $this->tableGateway->getAdapter()->query("select data from fil_tab where uid = 10");
    $result = $test->execute()->current();
    $value = strlen($result['data']); //2048 every time.
}

0 个答案:

没有答案