테스트 사이트 - 개발 중인 베타 버전입니다

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

강산몽 6년 전 조회 2,196

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

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

 

 

</p>

<p><?php

$mydata = array(

'A' => array ( 'C' => 1 ),

'B' => array ( 'C' => 2 )

);

// ok now hit the api...

$basePublicAPI = '<a href="https://api';" target="_blank" rel="noopener noreferrer">https://api';</a>

$Data = file_get_contents($basePublicAPI);

$Data = json_decode($Data, true);</p>

<p>$numbases = sizeof ($Data);

$portfolioValue = 0;

for ( $xx=0; $xx<$numbases; $xx++) {

$thisname = $Data[$xx]['name'];

$Held = array_key_exists($thisname, $mydata);

if ( !$Held ) { continue; }</p>

<p>        $sql = " update g5_data

                    set no = '$Data[$xx]['no']',</p>

<p>                        name = '$Data[$xx]['name']' ";

}

?></p>

<p>

                                

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

답변 3개

채택된 답변
+20 포인트
플래토
6년 전

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

 

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

 

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

 

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

 

 

 

로그인 후 평가할 수 있습니다

답변에 대한 댓글 1개

강산몽
6년 전
말씀하신데로, 업데이트는 되는데, 레코드 여러개를 불러 와야 하는데, 마지막 레코드 1개만 불러 오네요. ㅠ

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

유찬아빠

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개

강산몽
6년 전
sql_query($sql); 를 넣어 주어도 업데이트가 되지 않는데요.
유찬아빠
6년 전
실제로 값이 있는지 찍어보시고

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

값이 존재한다면

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

이렇게 해보세요

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

6년 전

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

 

 

로그인 후 평가할 수 있습니다

답변에 대한 댓글 1개

강산몽
6년 전
일단 입력만 되면 됩니다.

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

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

로그인