고수님들 쿼리문 맞는지 확인 좀 부탁드립니다.ㅠㅠ
본문
sql_query("DELETE g5_member.*,g5_point.* FROM g5_member INNER JOIN g5_point ON (g5_point.mb_id=g5_member.mb_id) where g5_member.mb_datetime < '".date("Y-m-d", G5_SERVER_TIME - 691200 )."' and g5_member.mb_email_certify = '0000-00-00'");
가입한지 8일 이전 회원중에서 메일 인증 안한사람들을 삭제하는 쿼리인데..
전에는 잘됐던거 같은데 지금은 뭐가 문제인지.. 쿼리가 넘어가기는 하는데..
해당 회원들 삭제가 안되네요 ㅠㅠ;
답변 3
쿼리문 자체는 별 문제가 없어 보입니다.
다만 직접 삭제하는 쿼리를 실행할 경우, 정확히 어떤 데이터가 없거나 또는 문제가 되어 원하는 결과가 도출되지 않는지 알 수 없는 상황이기 때문에, 단계별로 진행하여 문제상황을 확인하며 진행하는 것이 좋을 것같습니다.
예를 들면 아래와 같이 해보는 걸로요...
$result = sql_query(" select mb_id from {$g5['member_table']} where mb_datetime < '".date("Y-m-d", G5_SERVER_TIME - 691200 )."' and mb_email_certify = '0000-00-00 00:00:00' ");
if($result){
while($row = sql_fetch_array($result)){
//echo '메일인증 안한회원 : '.$row['mb_id'].'<br>'; //먼저 해당 아이디가 출력되는지 확인하고 아래의 쿼리를 실행하세요.
member_delete($row['mb_id']); //포인트, 스크랩 등 해당 회원관련 내용도 함께 삭제하기 위함.
}
}
현재 소스 부분이 어느 페이지에 포함되어 있는지는 모르겠지만 현재 위의 소스가 들어간 페이지에서
common.php 파일은 인클루드 하셨는지 확인해 보세요.
G5_SERVER_TIME 상수를 사용하기 위해서는 common.php 파일을 인클루드 해야 하니까요.
DELETE g5_member.*,g5_point.* FROM g5_member INNER JOIN g5_point ON (g5_point.mb_id=g5_member.mb_id)
위의앞쪽 구문중 뭔가가 잘못된거 같은데..
뭐가 잘못됐는지 잘모르겠습니다...