繁体   English   中英

使用php解析数据并将值插入mysql数据库?

[英]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.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM