dtvdz911959 2018-11-25 06:34
浏览 43
已采纳

使用curl获取成功消息后更新数据库中的值

i am getting below message after passing values in url with curl:

{"AddManifestDetails":[{"AuthKey":"Valid","ReturnMessage":"successful",}]

If ReturnMessage is successful , than i want to update values in database, i tried below code :

<?php

$data = 
array (
'OrderNo' => $order_id,
'AirWayBillNO' => $resultc[0]['awb'],
);

$url = "http://114.143.206.69:803/StandardForwardStagingService.svc/AddManifestDetails";

$data = json_encode($data);
$curl = curl_init($url);

curl_setopt($curl, CURLOPT_POSTFIELDS, $data);

$curl_response = curl_exec($curl);
curl_close($curl);
echo $curl_response ."
";
$res=json_decode($curl_response);

foreach ($res->curl_response as $values) 
{
if($values->ReturnMessage=='successful')
    {
      $usql="update  do_order set tracking_id='".$resultc[0]['awb']."',shipping_name='xpress', where order_id='".$order_id."'";       
      $result=$db_handle->executeUpdate($usql);  
      echo "1";die;
    }
    else
    {
      echo $values->ReturnMessage;die;
    }
}

Here is full code : https://pastebin.com/EvcEY0xp

Result :

Notice: Undefined property: stdClass::$curl_response

Warning: Invalid argument supplied for foreach()

  • 写回答

1条回答 默认 最新

  • douying9296 2018-11-25 06:49
    关注

    $res will already contain decoded response from curl request, which will have only 1 property - AddManifestDetails.

    Try following:

    <?php
    
    $data = 
    array (
    'OrderNo' => $order_id,
    'AirWayBillNO' => $resultc[0]['awb'],
    );
    
    $url = "http://114.143.206.69:803/StandardForwardStagingService.svc/AddManifestDetails";
    
    $data = json_encode($data);
    $curl = curl_init($url);
    
    curl_setopt($curl, CURLOPT_POSTFIELDS, $data);
    
    $curl_response = curl_exec($curl);
    curl_close($curl);
    echo $curl_response ."
    ";
    $res=json_decode($curl_response);
    
    if($res->AddManifestDetails[0]->ReturnMessage=='successful')
    {
        $usql="update  do_order set tracking_id='".$resultc[0]['awb']."',shipping_name='xpress' where order_id='".$order_id."'";       
        $result=$db_handle->executeUpdate($usql);  
        echo "1";
        die;
    }
    else
    {
        echo $res->AddManifestDetails[0]->ReturnMessage;
        die;
    }
    
    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论

报告相同问题?

悬赏问题

  • ¥15 c语言怎么用printf(“\b \b”)与getch()实现黑框里写入与删除?
  • ¥20 怎么用dlib库的算法识别小麦病虫害
  • ¥15 华为ensp模拟器中S5700交换机在配置过程中老是反复重启
  • ¥15 java写代码遇到问题,求帮助
  • ¥15 uniapp uview http 如何实现统一的请求异常信息提示?
  • ¥15 有了解d3和topogram.js库的吗?有偿请教
  • ¥100 任意维数的K均值聚类
  • ¥15 stamps做sbas-insar,时序沉降图怎么画
  • ¥15 买了个传感器,根据商家发的代码和步骤使用但是代码报错了不会改,有没有人可以看看
  • ¥15 关于#Java#的问题,如何解决?