Codeigniter 正在截断我的数据库结果中的字符串

Codeigniter is cutting off the strings in my database results

我是 运行 Codeigniter 3.0.6 并且在 SQLServer 2012 数据库中存储字符串(全部为十六进制)。我遇到的问题是当 Codeigniter returns 我的数据库中超过 255 个字符的数据被截断时。有人有什么想法吗?

数据库中的字符串(正确长度):

1: 2AAF97C27B86C3F84153D2A85D08B0B0581B63D1F527C522F64604C344E098FDCFBBEC1C5660E0A496ABDAFC6EDFA2315AB9ACC45AB528688C20A262C247E820CC365288EC9C0A30EC96AC2B9262E20CAD9D8AB118A2DAF4A0637FFF0F8E008555AE7C6C809E94B04F5291B1E36757BAC9DBBEBE2E00AEE642638AA09115FFC671C8FEF03547F36752C4DD65204EE1AE
2: 95586157B50472C6408332AD6F80008A05DAF3700560442414963503FEE86D8CA585B603E4431EFE6BDACC5438FF9CD8F6954065FC02A825604E3644541E9CB0B5A9716FA832E79C418DF9BEC07A8F8822F64F9E7ECB47ED72B91EE11E1271FFBCD74BB4A81FE53E10E1746EE556B4C7E3ADBB1462E51AFAB03317A559DBFCEA76E94AF0E563182C4B9A5BA62BB7C5EC
3: 77E13F477905549B3782F86755DD95FA3675FD3D8C11048032E589579DA27D2EDA9516ADBF6268160E96D59D0023EF2D510E0024965EECA018C98CA9D2C6655BA2AC17EEBE5F1E511957B7371FF538ABFD5CFFDF8B92389547AA5A65C698B9709A5B994140924907FA8D0B0EB30A17A7AD2F4FD38C583A1461B9A8CBA9BA3DFE1D0AD1731DAFF96A3CCA3BD9AD18B541
4: ADE25DF92667516294106E4A8F72B892FC6EB43AA64982C74DA157077366A697F16B8D6422659F2ABD0CBE6617D8AD556CE5F4143B18E2D6A744B2D55FADAEB93BB229DB79375C7AF2E7D2B4EACD905EF13C737DB5B04964F9726A849D08BA3EBE92D0BC909DD7F84361D566F9B99AC8EAF13E29555215A3B1E3BE99CA4AF34894AC4961975D33548C8EBFA91E15C9E5

Codeigniter 中返回的字符串(剪切为 255 的长度):

1: 2AAF97C27B86C3F84153D2A85D08B0B0581B63D1F527C522F64604C344E098FDCFBBEC1C5660E0A496ABDAFC6EDFA2315AB9ACC45AB528688C20A262C247E820CC365288EC9C0A30EC96AC2B9262E20CAD9D8AB118A2DAF4A0637FFF0F8E008555AE7C6C809E94B04F5291B1E36757BAC9DBBEBE2E00AEE642638AA09115FFC
2: 95586157B50472C6408332AD6F80008A05DAF3700560442414963503FEE86D8CA585B603E4431EFE6BDACC5438FF9CD8F6954065FC02A825604E3644541E9CB0B5A9716FA832E79C418DF9BEC07A8F8822F64F9E7ECB47ED72B91EE11E1271FFBCD74BB4A81FE53E10E1746EE556B4C7E3ADBB1462E51AFAB03317A559DBFCE
3: 77E13F477905549B3782F86755DD95FA3675FD3D8C11048032E589579DA27D2EDA9516ADBF6268160E96D59D0023EF2D510E0024965EECA018C98CA9D2C6655BA2AC17EEBE5F1E511957B7371FF538ABFD5CFFDF8B92389547AA5A65C698B9709A5B994140924907FA8D0B0EB30A17A7AD2F4FD38C583A1461B9A8CBA9BA3DF
4: ADE25DF92667516294106E4A8F72B892FC6EB43AA64982C74DA157077366A697F16B8D6422659F2ABD0CBE6617D8AD556CE5F4143B18E2D6A744B2D55FADAEB93BB229DB79375C7AF2E7D2B4EACD905EF13C737DB5B04964F9726A849D08BA3EBE92D0BC909DD7F84361D566F9B99AC8EAF13E29555215A3B1E3BE99CA4AF34

数据库Table:

一位用户在 api documentation 中评论:

Note that if you fetch varchar fields larger than 255 letters the result will be cut off at 255 letters.

To prevent this you have to do a CONVERT(TEXT,data_field) for this fields in your select clause.

基本上,只需在您想要 return 的字段上使用 MSSQL 的 CONVERT() 函数。可能不理想,因为您可能正在使用活动记录,但这是您必须处理的问题,因为 mssql 支持充其量是不稳定的。

使用 TEXT 数据类型来存储大字符串(65,535 字节)。