2015-05-14 111 views
1

我對json很新,但我試圖從json插入一些數據到數據庫表中。我不斷收到一些錯誤: 注意:未定義指數:受 注意:未定義指數:消息如何從json對象插入數據到數據庫

<?php 
$jsondata = '{ 
    "p1" : [ 
{ 
"subject": "Something", 
"message": "Something" 
}, 
{ 
"subject": "Something111", 
"message": "Something11" 
} 
] 
}'; 

$data = json_decode($jsondata, true); 
$p1 = $data['p1']; 

$sql = "INSERT INTO 
     table(subject, 
     message) 
     VALUES('".$p1['subject]."', '".$p1['message]."'"); 
$result = $mysqli->query($sql); 

?> 
+0

$ P1是多維數組所以使用foreach循環\ –

+0

所以加起來這裏所說的一切,得到一個體面的編輯器,比如NetBeans的或Eclipse和你已經解決了大部分發布這個問題之前.. – dbf

回答

0

你的代碼有很多錯誤。

1 $ p1爲您進行治療作爲數組

2.You有忘記在查詢

3.You有密切的前逗號(')「在多維數組在查詢錯了地方,應該值後支架是在最後。

使用此代碼

$jsondata = '{ 
    "p1" : [ 
{ 
"subject": "Something", 
"message": "Something" 
}, 
{ 
"subject": "Something111", 
"message": "Something11" 
} 
] 
}'; 

$data = json_decode($jsondata, true); 
$p1 = $data['p1']; 
foreach($p1 as $val) 
{ 
    $sql = "INSERT INTO table(subject,message) VALUES('".$val['subject']."', '".$val['message']."')"; 
    $result = $mysqli->query($sql); 
} 
0

$ p1爲對象的陣列例如:{ 「主題」: 「XXXX」, 「消息」 : 「YYY」};

因此,你必須 $ P1,做數據庫插入

foreach ($p1 as $obj){ 
    $sql = "INSERT INTO 
    table(subject, 
    message) 
    VALUES('".$obj['subject]."', '".obj['message]."'"); 
    ... 
} 
0

有一個在$ P1 多維數組如果你想你的插圖可以使用this.Otherwise你需要第一行使用的foreach

$ SQL = 「INSERT INTO 表(主題, 消息) VALUES('」。$ P1 [0] [ '主體'。「」, '」。$ P1 [0] ['信息']。」')」;

0
foreach loop will do the job but as it is an object you need to access it using the -> operator. 


    <?php 
    $jsondata = '{ 
    "p1" : [ 
    { 
    "subject": "Something", 
    "message": "Something" 
    }, 
    { 
    "subject": "Something111", 
    "message": "Something11" 
    } 
    ] 
    }'; 
    $data = json_decode($jsondata, true); 
    $p1 = $data['p1']; 
    foreach ($p1 as $object){ 
    $sql = "INSERT INTO table(subject,message) VALUES ('".$object->subject."','".$object->message."'"); 
    $result = $mysqli->query($sql); 
    } 
    ?> 


I hope this helps you 
相關問題