我有一个JSON数组,我需要将它转换为插入查询字符串, 有没有人有想法如何做到这一点?转换JSON数组插入到一个插入查询字符串在PHP
这里的JSON字符串
$array = '[
{
"table":"customer",
"data":
[
{
"name":"Johny",
"address":"jl. abc no 5",
"where" :
{
"customerid":1
}
},
{
"name":"Doko",
"address":"jl. kerinci 7"
"where" :
{
"customerid":2
}
}
]
},
{
"table":"supplier",
"data":
[
{
"id":123
},
{
"id":234
}
]
}
]
';
然后我用json_decode把它转换成一个数组
$obj = json_decode($array,true);
这里的解决方法到目前为止,我所做的一切。
foreach($obj as $result){
$table = $result['table'] . "</br>";
$data = $result['data'];
$string = "INSERT INTO $table (";
foreach($data as $subdata){
foreach($subdata as $key=>$val){
$string .= "$key,";
$string .= ")VALUES (";
$string .= "'$val'" . ",";
}
$string .= ");";
}
echo $string."</br>";
}
,但它不喜欢的工作,我想,
我需要的是将其转换成查询等预先
INSERT INTO customer(customerid,address)values('1','jl.abc no 5');
INSERT INTO customer(customerid,address)values('2','jl. kerinci no 7');
INSERT INTO supplier(id)values('123');
INSERT INTO supplier(id)values('234');
感谢。
PS:该数组可能超过两个数组,甚至只有一个。
============================================== =============================
更新:读数组然后将其拆分成更新查询字符串 像
UPDATE customer SET name="JOHNY", address="jl. abc no 5";
UPDATE customer SET name="Doko", address="jl. kerinci 7";
时“其中”项存在,并且忽略它当“其中”项不存在
当你解码这是永远都只是两个数组?客户和供应商? –
@ L.Herrera nope,它可能超过两个,或者可能只是一个。 – mabbs
但不能超过两个?它可以只是客户?只有供应商? –