BLOG main image
전체 (178)
하루하루 (35)
공부꺼리 (10)
관심꺼리 (4)
뻘짓 (7)
주변생물 (1)
개발관련 (36)
문화생활해보기 (80)
기타 (5)
fashion (0)
110416 Visitors up to today!
Today 12 hit, Yesterday 6 hit
'스팸댓글'에 해당되는 글 1건
2006/06/16 17:38
http://www.justinchronicles.net/blog/index.php?pl=132

http://tolkien.withseha.net/index.php?pl=140

위의 링크에 있던 내용 수정.

mysql 버전이 3.x 라 서브쿼리가 안 되서 스크립트로 만들었음.

스팸 정말 싫다.

즤질이야~ 즤질~



<?php
/**
* 사용 방법
* SPAM reply(table t3_###_10ofmg_reply)에서 데이터를 제거한 후
* 환경 설정을 해주고 스크립트 실행.
*
* tip) 대부분의 스팸 데이터들은 동일한 password를 사용하는 것 같으므로
* DELETE FROM t3_###_10ofmg_reply WHERE password = '29bad1457ee5e49e'
* 위의 쿼리를 실행 시켜준다. (아니면 말고.)
*
* 콘솔에서 실행시킬 경우 : php -q count_reset.php
*/

/**
* 환경 설정
*/
$db_host = 'localhost';
$db_user = '';
$db_pass = '';
$db_name = '';

$tt_tbl = 't3_tts_10ofmg';
$tt_tbl_rep = 't3_tts_10ofmg_reply';
$tmp_tbl = 't3_tts_10ofmg_tmp_cnt';

$conn = mysql_connect($db_host, $db_user, $db_pass);
mysql_select_db($db_name, $conn);

/**
* 1. 임시 reply count용 table 생성
*/
$sql = "DROP TABLE IF EXISTS ".$tmp_tbl;
mysql_query($sql);

$sql = "CREATE TABLE ".$tmp_tbl."
(
pno INT NOT NULL,
count INT NOT NULL
) TYPE = MYISAM
";
mysql_query($sql);

/**
* 2. 임시테이블에 다시 새롭게 포스트별로 댓글수를 카운트해서 집어넣기
*/
$sql = "INSERT INTO
".$tmp_tbl."
SELECT a.no AS no,
COUNT(b.pno) AS count
FROM ".$tt_tbl." AS a
LEFT JOIN
".$tt_tbl_rep." AS b
ON a.no = b.pno
GROUP BY a.no
ORDER BY a.no ASC";
mysql_query($sql);

/**
* 4. 본테이블에 새롭게 카운트된 코멘트 숫자를 업데이트.
*/
$sql = "SELECT
pno as pno,
count as cnt
FROM
".$tmp_tbl."
";
$rs = mysql_query($sql);

while($row = mysql_fetch_assoc($rs))
{
$sql = "UPDATE ".$tt_tbl." SET
rp_cnt = ".$row['cnt']."
WHERE no = ".$row['pno']."
";
mysql_query($sql);
}

/**
* 5. 임시 테이블 제거
*/
$sql = "DROP TABLE IF EXISTS ".$tmp_tbl;
mysql_query($sql);

?>
Trackback Address :: 이 글에는 트랙백을 보낼 수 없습니다
Name
Password
Homepage
Secret
#1