[{
"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
}]
}]
我试图添加上面的数组以进行 Codeigniter 批量插入,但失败了。 如何转换上面的数组以插入到mysql数据库
最佳答案
除此之外,您到目前为止还没有显示任何尝试过的内容,您必须了解您发布的字符串不是数组 - 而是 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
不是必需的,因为无论如何您都必须迭代数组。
关于php - 更改二维数组以实现 Codeigniter 兼容性批量插入,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/46032830/