curl로 받은 배열을 db에 저장하고 싶은데 잘 안되네요, 끄,,응...
본문
$result_output = curl_exec($ch);
echo $result_output;
curl_close($ch);
-----------------
위의 $result_output 변수에 배열로 bloggername,bloggerlink,title가 담겨져 있는데요.
이를 json형으로 바꾸어
테이블에 저장하려고 아래와 같이 코딩했는데 안돼네요.,..
도와 주세요,.,
뭐가 문제죠?
// MySQL 연결
$conn = new mysqli($servername, $username, $password, $dbname);
if ($conn->connect_error) {
die("MySQL 연결 실패: " . $conn->connect_error);
}
$result_array = json_decode($result_output, true);
if (!empty($result_array)) {
foreach ($result_array as $item) {
$item_bloggername =$result_array['bloggername'];
$item_bloggerlink = $conn->real_escape_string($result_array['link']);
$item_title =$conn->real_escape_string($result_array['title']);
$sql_insert = "INSERT INTO tb_blog_list (item_bloggername, item_bloggerlink, item_title) VALUES ('".$item_bloggername."','".$item_bloggerlink."', '".$item_title."')";
if ($conn->query($sql_insert) === false) {
echo "데이터 삽입 실패: " . $conn->error;
}
}
}
답변 1
json_decode는 파라미터로 json형식의 문자열을 받아서 파싱하여 배열로 리턴해줍니다.
때문에 입력파라미터인 $result_output의 값이 정확히 json형식의 문자열인지 살펴보세요.
그리구, json_encode($result_output;) 값도 살펴보아야 합니다.
혹시, json_encode()의 세번째 파라미터가 깊이값인데 배열의 깊이가 그 값을 넘으로 에러 발생 하겠지만, 지금 봐서는 깊이가 하나인듯 보입니다.
상세한 논의를 온라인 미팅으로 지원해드리겠습니다.
스카이프아이디: splitedragon 연락주세요.