MySQL의 특정 테이블의 특정 컬럼의 문자열 일괄 치환하기
<html> <body> <?php $dbname = "DB이름"; $userid = "유저아이디"; $passwd = "패스워드"; $table = "테이블이름"; $column = "컬럼이름"; $old = "기존 문자열"; $new = "새로운 문자열"; $con = mysql_connect("localhost", $userid, $passwd) or die (mysql_error()); mysql_select_db($dbname); $query = "select no, $column from $table where $column like '%" . $old . "%'"; print "query=$query<br>\n"; $result = mysql_query($query, $con) or die (mysql_error()); $total_size = mysql_num_rows($result); for ($list = 0; $list < $total_size; $list++) { if (!($row = mysql_fetch_array($result))) { break; } $column_value = addslashes($row[$column]); print "$column ==> " . htmlentities($column_value) . "
\n"; $query = "update $table set $column = '" . str_replace ($old, $new, $column_value) . "' where no = " . $row[no]; print "query=" . htmlentities($query) . "<br>\n"; $result = mysql_query($query, $con) or die (mysql_error()); } ?> </body> </html>
replace.php라는 이름으로 저장하고 웹으로 이 파일에 접근하면 특정 테이블의 특정 컬럼에 존재하는 모든 문자열 패턴을 다른 문자열로 모두 변경할 수 있다.
게시판의 본문 중에서 어떤 문자열을 일괄 치환해야 하는 경우에 유용하다.