将API中的多个值插入mysql数据库 [英] Insert multiple values from API into mysql database

查看:66
本文介绍了将API中的多个值插入mysql数据库的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

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

I am connected to an API that keeps track of customer orders. Some orders have one product but some orders have multiple products in one order. When I try and INSERT into my database I only get the first product. I would like to have all the products inserted in the cases where their are more than one. The API's XML to the productName is ->orderItems->orderItem->productName and I am trying to loop through all of them but I still only get the first product.

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);
    }
}

推荐答案

尝试在foreach循环中放入插入查询

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);

这篇关于将API中的多个值插入mysql数据库的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆