2012-02-07 50 views
0

我想將JSON數據保存到MySQL數據庫中& PHP。我用反序列化真正的逃逸JSON字符串

// This is the JSON (from Twitter). 
$result = 
Array 
(
    [created_at] => Wed, 01 Feb 2012 03:53:25 +0000 
    [entities] => Array 
     (
      [hashtags] => Array 
       (
        [0] => Array 
         (
          [text] => somehashtag 
          [indices] => Array 
           (
            [0] => 85 
            [1] => 98 
           ) 

         ) 

       ) 

$stringForDB = mysql_real_escape_string(serialize($result)); 

來序列化。

我無法反序列化它。

我已經試過

$obj=unserialize($stringForDB); 

但是$ obj是空白。

+2

爲什麼'serialize'?JSON數據已經是一個字符串。 – Gumbo 2012-02-07 07:34:58

+0

@Gumbo因爲如果我不會得到'警告:mysql_real_escape_string()期望參數1是字符串,在.php中給出的數組' – daidai 2012-02-07 07:41:27

+2

然後你的'$ result'不是有效的JSON。或者你想將數組編碼爲JSON?也許最好發佈'$ result'的樣子,以及你想要做什麼。 – enricog 2012-02-07 07:44:39

回答

0

mysql_real_escape_string將前面加上反斜槓「和」使其不能反序列化。

$serializedResult = serialize($result); 

// $stringForDB can not be unserialized since it has extra backslashes 
$stringForDB = mysql_real_escape_string($serializedResult)); 

// Some code to insert $stringForDB into the database 

$obj=unserialize($serializedResult);