将多个值从API插入到mysql数据库中

时间:2016-10-27 22:10:02

标签: php mysql sql api

我连接到一个跟踪客户订单的API。有些订单有一个产品,但有些订单在一个订单中有多个产品。当我尝试INSERT到我的数据库时,我只得到第一个产品。我想在所有产品不止一个的情况下插入所有产品。 API对productName的XML是 - > orderItems-> orderItem-> productName,我试图遍历所有这些,但我仍然只获得第一个产品。

foreach ( $customer_orders as $customer_order )
{
                $chOrder = curl_init('https://'. $customer_order->reference);
                curl_setopt( $chOrder, CURLOPT_USERPWD, "username" . ":" . "password");
                curl_setopt( $chOrder, CURLOPT_HTTPHEADER, array('Content-Type: application/xml'));
                curl_setopt( $chOrder, CURLOPT_RETURNTRANSFER, true );
                $orderResult = curl_exec($chOrder);
                curl_close($chOrder);

                $shouldContinue = true;
                try
                {
                    $singleXML = new SimpleXMLElement($orderResult);
                }
                catch (Exception $e)
                {
                    $shouldContinue = false;
                    error_log($e);
                    error_log('Failed to get history for ' . wp_get_current_user()->user_email . ' using refernece: ' .  $customer_order->reference);
                }

                if ($shouldContinue)
                {

                     ++$orderCount;


                    foreach ( $singleXML->orderItems->orderItem as $item ) {
                        $product = htmlentities($item->productName, ENT_QUOTES, 'UTF-8');
                    }


                    $con = mysqli_connect('localhost','root','password','database');

                    $query = "INSERT IGNORE INTO customer_product_list(`product`)VALUES('$product')";

                    mysqli_query($con,$query);

                    mysqli_close($con);

        }

}

1 个答案:

答案 0 :(得分:0)

try put insert query inside foreach loop
$con = mysqli_connect('localhost','root','password','database');
foreach ( $singleXML->orderItems->orderItem as $item ) {
$product = htmlentities($item->productName, ENT_QUOTES, 'UTF-8');
$query = "INSERT IGNORE INTO    

customer_product_list(`product`)VALUES('$product')";

 mysqli_query($con,$query);


 }
 mysqli_close($con);