[php] cURL을 사용하여 요청에 대한 응답 데이터를 데이터베이스에 저장하는 방법은?

cURL을 이용하여 원격 서버로 요청을 보내고, 그 응답 데이터를 데이터베이스에 저장하는 방법에 대해 알아보겠습니다.

cURL을 사용하여 요청 보내기

가장 먼저 cURL을 사용하여 원격 서버에 요청을 보내는 방법에 대해 살펴보겠습니다. 아래는 cURL을 사용하여 GET 요청을 보내는 PHP 코드의 예시입니다.

<?php
$curl = curl_init();

curl_setopt_array($curl, array(
  CURLOPT_URL => "http://example.com/api/data",
  CURLOPT_RETURNTRANSFER => true,
  CURLOPT_FOLLOWLOCATION => true,
  CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1,
  CURLOPT_CUSTOMREQUEST => "GET",
));

$response = curl_exec($curl);
$err = curl_error($curl);

curl_close($curl);

if ($err) {
  echo "cURL Error #:" . $err;
} else {
  // 응답 데이터를 처리하는 코드를 추가
}
?>

위 코드에서는 cURL을 사용하여 “http://example.com/api/data” 주소로 GET 요청을 보내고, 그 응답 데이터를 $response 변수에 저장합니다.

데이터베이스에 저장하기

이제 cURL을 사용하여 받은 응답 데이터를 데이터베이스에 저장하는 방법에 대해 알아보겠습니다. 아래는 MySQL 데이터베이스에 데이터를 저장하는 PHP 코드의 예시입니다.

<?php
// 데이터베이스 연결 설정
$servername = "localhost";
$username = "username";
$password = "password";
$dbname = "dbname";

// cURL을 통해 받은 응답 데이터
$responseData = $response; // 위에서 받은 응답 데이터

// MySQL 데이터베이스 연결
$conn = new mysqli($servername, $username, $password, $dbname);

// 데이터 삽입 SQL 쿼리
$sql = "INSERT INTO response_data (data) VALUES ('$responseData')";

if ($conn->query($sql) === TRUE) {
  echo "응답 데이터가 성공적으로 저장되었습니다.";
} else {
  echo "데이터베이스 오류: " . $conn->error;
}

// 데이터베이스 연결 닫기
$conn->close();
?>

위 코드에서는 cURL을 통해 받은 응답 데이터 $response를 데이터베이스에 저장하기 위해 SQL INSERT 쿼리를 사용합니다.

이제 cURL을 이용하여 원격 서버로 요청을 보내고, 그 응답 데이터를 데이터베이스에 저장하는 방법을 알게 되었습니다.

참고 문헌