Unix/Linux/Mac

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라는 이름으로 저장하고 웹으로 이 파일에 접근하면 특정 테이블의 특정 컬럼에 존재하는 모든 문자열 패턴을 다른 문자열로 모두 변경할 수 있다.

게시판의 본문 중에서 어떤 문자열을 일괄 치환해야 하는 경우에 유용하다.

답글 남기기