首页 > 解决方案 > 如何在while循环中使用curl传递数据库表值?

问题描述

在下面的代码中,我试图为“ OrderNo & AWB ”动态传递值。

$sql="SELECT order_id , alternateno FROM do_order";

$con=mysqli_connect("localhost","root","","do_management");

if ($result=mysqli_query($con,$sql))
{
    while ($row=mysqli_fetch_row($result))
    {
        $data = 
            array (
                'OrderNo' => '$row[order_id]', 
                'ManifestDetails' => 
                    array (
                        'AWB' => '$row[alternateno]',    
                        'PaymentStatus' => 'COD',   
                    ),
                );
    }
    mysqli_free_result($result);
}

mysqli_close($con);

$url = "http://1234.1234.1234.1234";
$data = json_encode($data);

$curl = curl_init($url);
$curl_response = curl_exec($curl);
curl_close($curl);
echo $curl_response ."\n";

每次我在浏览器中调用 URL 时,它都会显示以下错误消息:

"ReturnMessage":"具有相同订单 ID ($row[order_id]) 的 AWB no 已经存在","AWBNo":"$row[alternateno]"

但是如果我给OrderNo(16445)和AWB(16445)的静态值,那么它工作正常:

"ReturnMessage":"成功","AWBNo":"16445"

所以看来我没有正确传递值,请指导我。

标签: phparraysjsoncurlresultset

解决方案


去掉order_id和alternateno的引号试试

<?php

$sql="SELECT order_id , alternateno FROM do_order";

$con=mysqli_connect("localhost","root","","do_management");

if ($result=mysqli_query($con,$sql))
{
 while ($row=mysqli_fetch_row($result))
 {
  $data = 
  array (
      'OrderNo' => $row['order_id'], 
      'ManifestDetails' => 
         array (
           'AWB' => $row['alternateno'],    
           'PaymentStatus' => 'COD',   
               ),
        );
   }
  mysqli_free_result($result);
 }

 mysqli_close($con);

 ?>

推荐阅读