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

무한루프 채택완료

웹프리죤 3년 전 조회 1,934

$sql_up = " select * from `tbl_nft_backup` "; $result_up = sql_query($sql_up);

for ($i=0; $row=sql_fetch_array($result_up); $i++) {

     $mb = get_member($row['nft_url']);      sql_query(" update `tbl_nft_backup` set nft_url = '".$mb['mb_name']."' ");

}

 

이거 user.config.php 에서 돌리는데 어디가 잘못돼서 자꾸 무한루프 걸리는걸까요?

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

답변 3개

채택된 답변
+20 포인트
3년 전

1. user.config.php 에 코드를넣으면 패이지를 이동할때마다 실행되게 됩니다

   10명이 접속하면 똑 같은 행동을 10번 실행하게 되고 각각 페이지 이동할때마다 또 살행되게 됩니다 

  user.config.php에 들어가서는 안되는 코드입니다

 

2. 맨 처음 nft_url 필드에 아이디가 들어가는지 모드겠지만

   $mb = get_member($row['nft_url']); <--아이디로 이름을 찾아서

   update `tbl_nft_backup` set nft_url = '".$mb['mb_name']."' " <-- 이렇게 해버리면  

    첫번째 레코드 아이디로 모든 레코드의 nft_url에 동일한 이름이 저장되게 되고

    두번째 레코드의 이름이 모든 레코드에 저장되고 , 같은 일이 세번째 네번째....계속 됩니다

 

   페이지 이동이 되면 다음 실행부터는 nft_url필드 값이 아이디가 아니니 이름을 찾을 수가 없고

   따라서 모든 nft_url 에 빈값이 저장되는 쿼리를 레코드 수만큼 실행합니다 

   이와 같은 코드를 접속하는 모든 사람이 실행하게 됩니다

   살인적인 끔찍한 코드입니다

 

도대체 무엇을 하려는 것인가요?

 

 

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

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

3년 전

리미트를 걸던가 조건 걸어서 사용하세요 전체 로우 읽어서  포문 돌아가면서 업데이트 칠려고하니 느려지지요?.....

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

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

그누위즈

데이터가 많아서, 처리하는 속도 때문에, 무한루프처럼 느끼는것? 아닌지 확인해보세요.

코드상은 문제없어 보입니다.

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

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

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

로그인