채택완료

api 데이터를 받아와 db에 update가 되지 않네요.

2018-11-29 (목) 12:13:10 2,513

아래 코드로 api 데이타중 나에게 맞는 이름을 찾아 update하고 싶은데요. 

g5_data 테이블 만들고, no, name을 만들었는데도, db update가 되지 않아요. ㅠㅠ

Copy
<?php
$mydata = array(
'A' => array ( 'C' => 1 ),
'B' => array ( 'C' => 2 )
);
// ok now hit the api...
$basePublicAPI = 'https://api';
$Data = file_get_contents($basePublicAPI);
$Data = json_decode($Data, true);

$numbases = sizeof ($Data);
$portfolioValue = 0;
for ( $xx=0; $xx<$numbases; $xx++) {
$thisname = $Data[$xx]['name'];
$Held = array_key_exists($thisname, $mydata);
if ( !$Held ) { continue; }

        $sql = " update g5_data
                    set no = '$Data[$xx]['no']',

                        name = '$Data[$xx]['name']' ";
}
?>
|

답변 3개 / 댓글 4개

채택된 답변
+20 포인트

답은 @유진아빠 님이 답하신게 해결방법입니다만

g5_data 는 레코드가 1개인가요?

where 이하 구문이 없어도 되는 단발성 데이타라고 하더라도

동시에 해당 내용이 발생할은 없는지 궁금해지네요

답변에 대한 댓글 1개

말씀하신데로, 업데이트는 되는데, 레코드 여러개를 불러 와야 하는데, 마지막 레코드 1개만 불러 오네요. ㅠ
2018-11-29 (목) 12:26:11

where 절이 없으므로 인서트라고 가정하고

      $sql = " insert into g5_data
                    set no = '$Data[$xx]['no']',
                        name = '$Data[$xx]['name']' ";

     sql_query($sql);

아니면

      $sql = " update g5_data                     set no = '$Data[$xx]['no']',                         name = '$Data[$xx]['name']' ";

     sql_query($sql);

이렇게 마지막에 쿼리를 실행해야 디비에 적용됩니다.

답변에 대한 댓글 2개

sql_query($sql); 를 넣어 주어도 업데이트가 되지 않는데요.
실제로 값이 있는지 찍어보시고

echo $Data[$xx]['no'];

값이 존재한다면

$sql = " update g5_data set no = '".$Data[$xx]['no']."', name = '".$Data[$xx]['name']."' ";

이렇게 해보세요

소스상으로는 $sql문만 입력되고 실행이 안되는것 같습니다만

답변에 대한 댓글 1개

일단 입력만 되면 됩니다.

답변을 작성하려면 로그인이 필요합니다.