[英]PHP Loop JSon and Insert the Json Data into Database
{"details":
[{"Ticket_Date":"2014-02-20 11:32:05","Ticket_No":1950,"Amount":1.3,"In_Out":"IN","Vehicle_ID":27,"From_LocationID":3,"PriceType_ID":0,"Trip_ID":"6d744df4dfc017b1-103879384421","To_LocationID":1,"Inspector_Print ":0,"Driver_ID":16},
{"Ticket_Date":"2014-02-20 11:56:22","Ticket_No":1951,"Amount":1.3,"In_Out":"IN","Vehicle_ID":27,"From_LocationID":3,"PriceType_ID":0,"Trip_ID":"6d744df4dfc017b1-505617563631","To_LocationID":1,"Inspector_Print ":1,"Driver_ID":16}
]}
這是Json Pass to PHP,我試圖使用PHP在我的數據庫中插入這些數據
<?php
$data = file_get_contents("php://input");
//echo $data;
//$obj = var_dump(json_decode($data));
$json = json_decode($data);
mysql_connect("localhost", "root", "123456") or die("Could not connect");
mysql_select_db("db_shuttlebus") or die("Could not select database");
if (is_array($json)) {
$d = array();
foreach($json as $obj) {
$Ticket_No = $obj->{'Ticket_No'};
$Ticket_Date = $obj->{'Ticket_Date'};
$Amount = $obj->{'Amount'};
$In_Out = $obj->{'In_Out'};
$Vehicle_ID = $obj->{'Vehicle_ID'};
$From_LocationID = $obj->{'From_LocationID'};
$PriceType_ID = $obj->{'PriceType_ID'};
$Trip_ID = $obj->{'Trip_ID'};
$To_LocationID = $obj->{'To_LocationID'};
$Inspector_Print = $obj->{'Inspector_Print'};
$Driver_ID = $obj->{'Driver_ID'};
$Updated_Time = date("Y-m-d H:i:s");
$Route_ID = $obj->{'Route_ID'};
//echo $_id;
$query = "INSERT INTO tbl_ticket (Ticket_No,Ticket_Date,Amount,In_Out,Vehicle_ID,From_LocationID,PriceType_ID,Trip_ID,To_LocationID,Inspector_Print,Driver_ID,Updated_Time,Route_ID)VALUES('".$Ticket_No."','".$Ticket_Date."','".$Amount."','".$In_Out."','".$Vehicle_ID."','".$From_LocationID."','".$PriceType_ID."','".$Trip_ID."','".$To_LocationID."','".$Inspector_Print."','".$Driver_ID."','".$Updated_Time."','".$Route_ID."')";
$rs = mysql_query($query) or die ("Error in query: $query " . mysql_error());
if (!$rs) {
$d[] = array('Ticket_No' => $Ticket_No ,'Updated_Time' => $Updated_Time);
}
}
$pass_json = json_encode($d);
echo $pass_json;
}
?>
但是,我無法將$json as $obj
任何數據$json as $obj
,為什么?
你應該替換你的foreach
foreach($json->details as $obj)
對於$json
, is_array
將返回FALSE
,因為即使JSON
有效(它看起來是這樣),默認情況下json_decode
返回一個對象,而不是一個數組。 這一行:
if (is_array($json)) {
...將始終返回FALSE
而不執行。 要將JSON
轉換為關聯數組,請將第二個參數傳遞給函數:
$json = json_decode($data, true);
在您的示例中,如果您希望保留其余代碼,只需將is_array
更改為is_object
即可。 但是,檢查JSON
是否有效的更好方法是:
if(json_last_error() === JSON_ERROR_NONE) {
然后你可以處理解碼對象的details參數的問題:
foreach($json->details as $obj) {
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.