2017-09-04 63 views
0
[{ 
    "synonyms": [{ 
     "synonyms": "s1", 
     "wordId": 117 
    }, { 
     "synonyms": "s2", 
     "wordId": 117 
    }, { 
     "synonyms": "s3", 
     "wordId": 117 
    }, { 
     "synonyms": "s4", 
     "wordId": 117 
    }] 
}, { 
    "synonyms": [{ 
     "synonyms": "s5", 
     "wordId": 118 
    }, { 
     "synonyms": "s6", 
     "wordId": 118 
    }, { 
     "synonyms": "s7", 
     "wordId": 118 
    }] 
}] 

我尝试添加上述阵列笨批量插入和失败.. 如何上面数组转换插入到mysql数据库更改二维数组笨兼容性批量插入

回答

0

除了这个事实,你到目前为止没有显示任何你尝试过的东西,你必须明白你发布的字符串不是一个数组 - 而是一个JSON字符串。

为了达到你希望能够得到你该字符串解码什么 - 基于下面的例子中,你应该能够明白该怎么做

class Your_Model extends CI_Model 
{ 
    public function insert() 
    { 
     $strJson = '[{ 
      "synonyms": [{ 
       "synonyms": "s1", 
       "wordId": 117 
      }, { 
       "synonyms": "s2", 
       "wordId": 117 
      }, { 
       "synonyms": "s3", 
       "wordId": 117 
      }, { 
       "synonyms": "s4", 
       "wordId": 117 
      }] 
     }, { 
      "synonyms": [{ 
       "synonyms": "s5", 
       "wordId": 118 
      }, { 
       "synonyms": "s6", 
       "wordId": 118 
      }, { 
       "synonyms": "s7", 
       "wordId": 118 
      }] 
     }]'; 

     $arrData = json_decode($strJson); 


     foreach($arrData AS $obj) 
     { 
      foreach($obj->synonyms AS $objSynonym) 
      { 
       $arrInsertData = [ 
        "synonyms" => $objSynonym->synonyms, 
        "wordId" => $objSynonym->wordId 
       ]; 

       $this->db->insert("your_table", $arrInsertData); 
      } 
     } 

    } 
} 

,你可以看到一个insert_batch不因为你必须迭代你的数组。