Как игнорировать ошибку после cURL в php и переходить к следующей строке в массиве

1

Мой код ниже. Используя php для получения данных из SQL и отправьте его с помощью cURL. Мой вопрос: после того, как cURL обнаруживает ошибку, есть ли способ игнорировать ее (или отправить ее в файл журнала) и продолжить следующую строку в массиве? В настоящее время, как только он находит ошибку, он убивает его.

<?php

// SQL connection stuff...

// fetch data from sql
$sql = "Select * from tablename";
$result = sqlsrv_query($conn, $sql) or die("Error in Selecting " . sqlsrv_error($conn));

// convert result to array
$array = array();
while($row = sqlsrv_fetch_array($result, SQLSRV_FETCH_ASSOC)) {

    $array[] = $row;
}       
foreach($array as $data) {
$post = http_build_query($data) . "\n";

//echo $post; //save this for testing later
}


// API url
$url = "www.example.com";

// initiate cURL
$ch = curl_init($url);
curl_setopt($ch, CURLOPT_POSTFIELDS, $post);
curl_setopt($ch, CURLOPT_POST, true);

// execute POST
$response = curl_exec($ch);

// display errors
$status = curl_getinfo($ch, CURLINFO_HTTP_CODE);
echo $status."=response"."</br>";

curl_close($ch);

// close connection
sqlsrv_close($conn) 

?>
  • 0
    Ваш запрос curl будет выполнен только один раз, независимо от того, успешен он или нет, так как здесь вообще нет циклической конструкции.
  • 0
    Я понимаю это сейчас ... но не уверен, почему, когда я просто повторяю это, это показывает мне все результаты. До того, как я добавил foreach, он только возвращал первый результат, поэтому я думал, что завиток теперь тоже будет зацикливаться, но, очевидно, я ошибаюсь.
Показать ещё 1 комментарий
Теги:
curl

1 ответ

1
Лучший ответ

Заверните свой код внутри try {}... catch {} чтобы вы могли обрабатывать любые исключения:

try {
   // your curl execution
} catch (Exception $e) { 
   // log or do what you want
}
  • 0
    Спасибо! Я подумал, что это будет что-то легкое. Быстрый ответ на вопрос, если все в порядке ... похоже, что теперь у меня также есть ошибка в том, чтобы заставить его просматривать их в целом. Если я делаю "echo $ post", как я закомментировал в настоящее время, я вижу их все, но при запуске cURL он все еще делает только первый?
  • 0
    мне кажется, что $ массив не массив

Ещё вопросы

Сообщество Overcoder
Наверх
Меню