Tadashi Okoshi
slash****@users*****
2005年 6月 26日 (日) 23:20:40 JST
Index: affelio/lib/Affelio/misc/DBroutines.pm diff -u /dev/null affelio/lib/Affelio/misc/DBroutines.pm:1.1 --- /dev/null Sun Jun 26 23:20:40 2005 +++ affelio/lib/Affelio/misc/DBroutines.pm Sun Jun 26 23:20:40 2005 @@ -0,0 +1,92 @@ +# Affelio: Open social networking software +# Copyright 2004-2005 Fish Grove +# For more information, please refer following web site. +# http://affelio.jp/ (Japan) +# http://affelio.jp/ (USA and other area) +# +# $Id: DBroutines.pm,v 1.1 2005/06/26 14:20:40 slash5234 Exp $ + +package Affelio::misc::DBroutines; +{ + use lib("../../../lib/"); + use DBI; + + use Exporter; + @Affelio::misc::DBroutines::ISA = "Exporter"; + @Affelio::misc::DBroutines::EXPORT = qw (db_value_replace); + + sub db_value_replace{ + my $db = shift; + my $dbname = shift; + my $key_col = shift; + my $target_col = shift; + my $old = shift; + my $new = shift; + + my $key_data; + my $target_data; + my $target_data_new; + my %tmphash; + + Affelio::misc::Debug::debug_print("db_replace: start."); + ###################################### + #Retrieve data + ###################################### + my $q1 = "SELECT $key_col, $target_col FROM $dbname"; + + Affelio::misc::Debug::debug_print("db_replace: [$q1]"); + + my $s1 = $db->prepare($q1); + if($@){ + Affelio::misc::Debug::debug_print("db_replace:".$db->errstr); + die $db->errstr; + } + + $s1->execute(); + if($@){ + Affelio::misc::Debug::debug_print("db_replace:".$db->errstr); + die $db->errstr; + } + + while( ($key_data, $target_data) = $s1->fetchrow_array){ + $tmphash{$key_data} = $target_data; + } + undef($q1); + undef($s1); + + ###################################### + #Distill each line, replace, and store + ###################################### + Affelio::misc::Debug::debug_print("db_replace: distilling..."); + while (($key_data, $target_data) = each(%tmphash)) { + + $target_data_new = $target_data; + $old =~ s/\-/\\\-/g; + $target_data_new =~ s/$old/$new/g; + + Affelio::misc::Debug::debug_print("db_replace: [$key_data] [$target_data]->[$target_data_new]"); + + my $q2 = "update $dbname set $target_col = '$target_data_new' where $key_col = $key_data"; + Affelio::misc::Debug::debug_print("db_replace: [$q2]"); + + my $s2 = $db->prepare($q2); + if($@){ + Affelio::misc::Debug::debug_print("db_replace:".$db->errstr); + die $db->errstr; + } + + $s2->execute(); + if($@){ + Affelio::misc::Debug::debug_print("db_replace:".$db->errstr); + die $db->errstr; + } + + } + + Affelio::misc::Debug::debug_print("db_replace: end."); + } + + + +} +1;