Codeigniter正在切断我的数据库结果

时间:2016-06-03 20:32:01

标签: php sql-server codeigniter codeigniter-3

我正在运行Codeigniter 3.0.6并在SQLServer 2012数据库中存储字符串(全部为十六进制)。我遇到的问题是当Codeigniter从数据库返回我的数据时,任何超过255个字符的数据都被切断了。有人有任何想法吗?

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

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

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

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

数据库表:

enter image description here

2 个答案:

答案 0 :(得分:1)

用户在api documentation注释:

  

请注意,如果您获取大于255个字母的varchar字段   结果将被删除255个字母。

     

为了防止这种情况,你必须为此做一个CONVERT(TEXT,data_field)   您的select子句中的字段。

基本上,只需在要返回的字段上使用MSSQL的CONVERT()函数。可能不太理想,因为你可能正在使用活动记录,但它是你必须处理的,因为mssql支持最多也是不可能的。

答案 1 :(得分:0)

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