DateTime-> format () не возвращает строку - PullRequest
0 голосов
/ 05 июля 2018

Я делал некоторый код для циклического прохождения, пока определенное количество данных не было получено из API, увеличивая дату, используемую на 1 каждый раз. Я столкнулся с ошибкой, которую я не могу исправить, где я получаю ошибку: Object of class DateTime could not be converted to string

Насколько я знаю, функция форматирования объекта DateTime должна и всегда возвращает строку, но даже после ее форматирования говорит, что это не так. Это мой код:

$stmt = $conn->prepare("INSERT INTO `orders` (`orderReference`,`assignedAocId`,`dropDate`) VALUES(?,?,?) ON DUPLICATE KEY UPDATE `assignedAocId`=VALUES(`assignedAocId`), `dropDate`=VALUES(`dropDate`)");
$stmt->bind_param('sis',$order_reference,$aoc_id,$date);

while(count($aoc_ids) > 0) {
    // $date = date("d/m/Y");
    $date = new DateTime();
    $date->modify("-30 days");

    $aoc_id = $aoc_ids[0];

    $run_count = 0;
    $populated_count = 0;

    while($populated_count < 2 && $run_count < 5) {
        $date = $date->modify("+1 day");
        $formatted_date = $date->format("d/m/Y"); // Keeps looping through and incrementing date but never gets data
        $session_id = generate_session_id($ch);
        curl_setopt($ch, CURLOPT_URL, "https://live3.maxoptra.com/rest/2/distribution-api/orders/getOrdersWithZone");
        curl_setopt($ch, CURLOPT_POSTFIELDS,
            "sessionID={$session_id}&date={$formatted_date}&aocID={$aoc_id}");
        if(($xml = new SimpleXMLElement(curl_exec($ch))) !== false) {
            if($xml->error->errorCode != 1016) {
                if (sizeof($xml->OrdersWithZoneResponse->orders) > 0) {
                    foreach ($xml->OrdersWithZoneResponse->orders->order as $order) {
                        $order_reference = (string)$order["referenceNumber"];
                        $stmt->execute(); // Throws the error on this line
                    }
                    $populated_count = $populated_count+1;
                }     
                $run_count = $run_count+1;
            } elseif($xml->error->errorCode == 1016) {
                handle_error("getOrdersWithZone Invocation Limit Reached");
            } else {
                handle_error("getOrdersWithZone Unknown Error Code Returned",$debug_email);
                exit();
            }
        } else {
            handle_error("getOrdersWithZone cURL Failed",$debug_email);
            exit();
        }
    }
    array_shift($aoc_ids);
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...