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

adm/member_form.php에서 간단 질문요 채택완료

멋진남자임 10년 전 조회 4,851

위치 : adm/member_form.php( 관리자 모드에서-> 회원 수정 버튼 클릭시 나오는 화면)

 

if (isset($mb['mb_certify'])) { // 1. 왜 본인확인 조건?? 에  "~"가 포함되면  mb_certify 필드를 삭제하는지?

    // 날짜시간형이라면 drop 시킴

    if (preg_match("/-/", $mb['mb_certify'])) {

        sql_query(" ALTER TABLE `{$g5['member_table']}` DROP `mb_certify` ", false);

    }

} else { // 2. 왜 본인확인을 안하게 세팅하면 mb_certify 필드를 추가하죠?

    sql_query(" ALTER TABLE `{$g5['member_table']}` ADD `mb_certify` TINYINT(4) NOT NULL DEFAULT '0' AFTER `mb_hp` ", false);

}

 

if(isset($mb['mb_adult'])) { // 3. 여긴  왜 성인인증을 하게 되어있으면 mb_adult​ 필드의 속성을 TINYINT로  변경합니까?

 

    sql_query(" ALTER TABLE `{$g5['member_table']}` CHANGE `mb_adult` `mb_adult` TINYINT(4) NOT NULL DEFAULT '0' ", false);

} else { // 4. 여긴  왜 성인인증을 안하게 되어있으면 mb_adult​ 필드를 새로 추가하죠?

 

    sql_query(" ALTER TABLE `{$g5['member_table']}` ADD `mb_adult` TINYINT NOT NULL DEFAULT '0' AFTER `mb_certify` ", false);

}

 

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

답변 2개

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

그누보드5 버전이 올라가면서, 그누보드의 기능이 변경되기도 하고 추가되기도 하는데요..

 

이 경우, 기존에 만들어져 있는 디비를 다 지워버리고 새로 만들 수 없으니,

기능이 변경 추가되는 부분의 디비를 수정하고 추가해 주는 코드 입니다. 

 

정확하지는 않습니다만....

본인확인 필드가 있으면 처리를 하고, 없으면 필드 추가를 한다..

성인인증 필드가 있으면 속성 변경을 하고, 없으면 필드 추가를 한다..

이런 코딩 내용 같습니다. ^^

 

 

 

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

답변에 대한 댓글 2개

멋진남자임
10년 전
그러니까... 왜 아래를 하게 프로그램이 짜여져 있는지... 제작자의 의도나 해당 소스의 목적이 궁금합니다.
=============================================================
본인확인 필드가 있으면 처리를 하고, 없으면 필드 추가를 한다..
성인인증 필드가 있으면 속성 변경을 하고, 없으면 필드 추가를 한다..
멋진남자임
10년 전
마스타님께 감사인사 드린다는게 그때 바빠서... 우선 일하던거 하고 .. 답변한다는게.. 까먹음..

나중에 다시 감사인사드리려고 접속했는데... 누가 내 기존 댓글에 답변 올려서 거기 댓글달다가
뭐하러 들어왔는지 까먹음 ㅎㅎ

지금 다시 생각나서 인사드립니다.

마스타님 감사합니다^^ 덕분에 혼자 끙끙앓던거 해결되었습니다^^

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

10년 전

이전 답변에도 말씀 드렸다시피,

그누보드5 버전이 올라가면서, 그누보드의 기능이 변경되기도 하고 추가되기도 합니다.

 

그누보드의 모든 버전을 다 살펴 보진 않아서 정확하지는 않을 수 있지만, 

몇개 버전의 소스를 확인해 보면, 다음과 같은 변경 사항들이 있었습니다. 

mb_adult 의 경우, 

그누보드5 초창기에는 데이터타입이 enum('Y','N')  였었습니다. 

그리고 지금 버전에서는 ​TINYINT 로 변경되었습니다. 

변경한 이유에 대해서는 개발자 분이 알고 계시겠지만, 아마도 퍼포먼스 때문으로 보입니다. 

위 본문의 소스코드는 이러​한 디비 필드를 변경하는 코딩입니다. 

 

mb_certify 의 경우,

초창기에는 데이터타입이 varchar(20) ​ 였었는데,

지금 버전에서는  TINYINT(4) 로 변경되었습니다. 

varchar(20) 이었을 때는 날짜 형태의 데이터가 들어갔었던 것 같습니다. 

그래서, 날짜 형태의 값이 들어 있으면 예전 디비이므로 이를 지금의 디비인 TINYINT(4) 로 변경을 하도록 하는 것이, 위 본문의 소스코드입니다. 

디비 필드의 데이터타입을 변경한 이유에 대해서는, 아마도 기능의 변경 때문으로 추측됩니다. 

 

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

답변에 대한 댓글 1개

멋진남자임
10년 전
오... 마스타님은 이전버전의영카트도 보셨습니까? 진짜 그런것 같네요

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

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

로그인