2016-08-29 22 views
0

FacebookフィードからSQLデータベースにグループフィードを保存しようとしています。私はワードプレス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.. 
+0

DB内のフィールドのデータ型は、text/ – Dharmendra

+0

でなければなりません。型がvarcharで、長さが255である場合は、問題がどのようにテスト文字列が保存されるのでしょうか? – gurung

+0

以下の返信に応じてmediumtextまたはlongtextを使用できます:) –

答えて

1

varchar型のタイプにのみ255文字を格納することができます。長文やcharctersに基づいて他のいくつかのデータ型を使用する必要があります。

 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 

あなたの列に格納できる文字の数は文字エンコーディングに依存することに注意してください。

+0

その他のリファレンス:http://dev.mysql.com/doc/refman/5.7/en/string-type-overview.html –

関連する問題