无法将序列化数据保存到wordpress db中

时间:2016-08-29 09:38:53

标签: php wordpress facebook

我正在尝试将群组Feed从facebook保存到我的sql-database。我正在使用wordpress cms。问题是我无法保存从facebook获得的序列化数据。

   require_once __DIR__. '/Facebook/autoload.php';
   /*API details */
   $response = $fb->get( '/xxxxxxxx/feed?fields=type,description,story&limit=1',
   $fb->getApp()->getAccessToken() 
   ); 
        $decoded = $response->getDecodedBody(); // because for me it is a better parsable format than a json feed.
        $string_data = serialize($decoded);
        //$string_data = serialize('lorem');

        ##### INSERT THE DATA INTO WORDPRESS
        global $wpdb;
        $wpdb->insert( 'groupFeed', 
                    array( 
                        'data' => $string_data,
                        'timestamp' => time()
                    )
                );

数据列保持空白。但是,如果我尝试$string_data = serialize('lorem'),则wordpress可以将其另存为s:5:"lorem";。您认为这里的问题是什么?

以下是var_dump($ string_data);

的示例结果
string(1397) "a:2:{s:4:"data";a:1:{i:0;a:5: s:4:"type";s:6:"status";s:12:"created_time..

1 个答案:

答案 0 :(得分:1)

  

varchar类型只能存储255个字符。您必须使用基于字符的longtext或其他一些数据类型。

      Type | Maximum length
-----------+-------------------------------------
  TINYTEXT |           255 (2 8−1) bytes
      TEXT |        65,535 (216−1) bytes = 64 KiB
MEDIUMTEXT |    16,777,215 (224−1) bytes = 16 MiB
  LONGTEXT | 4,294,967,295 (232−1) bytes =  4 GiB

请注意,列中可存储的字符数取决于字符编码。