[英]Parsing data and inserting values into mysql database using php?
php代码检查json数据是否来自android代码。
<?php
require "init.php";
if($_POST){
print_r($_POST);
}else{
echo "Nothing came from android code";
}
?>
作为响应,我正在获取json数据,如下所示:
([jsonarray] => [{“ custInfo”:“ Ujwal 9975022560”,“ rate”:“ 24000”,“ weight”:“ 21.00000”,“ desc”:“ GENTS ANGTHI 22k NO STONE”,“ makingAmt”:“ 200“,” sum_total“:” RS.156283.38“,” vat“:” RS.3064.38“,” itemTotal“:” 51073“,”条形码“:” BQSP78BB“,” net_rate“:” 24200“,” date“ ::“ 2015-12-02”,“发票编号”:“ 1”,“ bill_type”:“发票”},{“ custInfo”:“ Ujwal 9975022560”,“ rate”:“ 24000”,“ weight”:“ 21.00000 “,” desc“:” GENTS ANGTHI 22k NO STONE“,” makingAmt“:” 200“,” sum_total“:” RS.156283.38“,” vat“:” RS.3064.38“,” itemTotal“:” 51073“, “条形码”:“ BQSP78BB”,“ net_rate”:“ 24200”,“日期”:“ 2015-12-02”,“发票编号”:“ 1”,“帐单类型”:“发票”},{“ custInfo”: “ Ujwal 9975022560”,“ rate”:“ 24000”,“ weight”:“ 21.00000”,“ desc”:“ GENTS ANGTHI 22k NO STONE”,“ makingAmt”:“ 200”,“ sum_total”:“ RS.156283.38” ,“ vat”:“ RS.3064.38”,“ itemTotal”:“ 51073”,“条形码”:“ BQSP78BB”,“ net_rate”:“ 24200”,“ date”:“ 2015-12-02”,“ invoiceNo” :“ 1”,“ bill_type”:“发票”}])
我想做的就是解析此响应并将数据插入到mysql数据库中。
foreach ( $data as $inv ) {
$custInfo = $inv->custInfo;
$rate = $inv->rate;
$weight= $inv->weight;
$desc= $inv->desc;
$makingAmt= $inv->makingAmt;
$vat= $inv->vat;
$itemTotal= $inv->itemTotal;
$sum_total= $inv->sum_total;
$barcode= $inv->barcode;
$net_rate= $inv->net_rate;
$date= $inv->date;
$invoiceNo= $inv->invoiceNo;
$bill_type= $inv->bill_type;
$sql = "INSERT INTO selected_items
(custInfo, invoiceNo, barcode, desc,
weight, rate, makingAmt,net_rate,
itemTotal,vat,sum_total,bill_type,date)
VALUES
('$custInfo','$invoiceNo','$barcode','$desc',
'$weight','$rate','$makingAmt','$net_rate',
'$itemTotal','$vat','$sum_total','$bill_type','$date')";
$res = mysqli_query($sql,$con);
我是php新手,所以尝试了json_decode,但它返回一个空字符串作为响应。 我如何解析custInfo, invoiceNo, barcode, desc,weight, rate, makingAmt,net_rate,itemTotal,vat,sum_total,bill_type,date
到我的表selected_items.
谢谢你:)
试试这个(更新):
$arr = json_decode(stripslashes($_POST['jsonarray']), true);
$env = $arr['jsonarray'];
$myArray = json_decode($data, true);
$sql = "INSERT INTO selected_items
(custInfo, invoiceNo, barcode)
VALUES
('$myArray['custInfo'],$myArray['invoiceNo'],$myArray['barcode'])";
$res = mysqli_query($sql,$con);
编辑:添加了一些错误检查,以帮助调试代码。
您可以尝试使用json_decode将其直接解码为数组
那么您可以使用extract()将 变量从数组导入当前符号表中,从而消除了foreach循环。
<?php
require "init.php";
if($_POST){
$data = $_POST;
$array = json_decode($data, true);
if($array===NULL){return print_r('json decode failed!');}
if(!is_array($array)){return print_r('Well, the decoded data is corrupt, its supposed to be an array, '.gettype($array).' given!');}
if(!isset($array['jsonarray'])){return print_r('no json data was ever received!');}
extract($array['jsonarray']);
$sql = "INSERT INTO selected_items
(custInfo, invoiceNo, barcode, desc,
weight, rate, makingAmt,net_rate,
itemTotal,vat,sum_total,bill_type,date)
VALUES
('$custInfo','$invoiceNo','$barcode','$desc',
'$weight','$rate','$makingAmt','$net_rate',
'$itemTotal','$vat','$sum_total','$bill_type','$date')";
$res = mysqli_query($sql,$con);
}else{
echo "Nothing came from android code";
}
?>
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.