[Affelio-cvs 181] CVS update: affelio/lib/Affelio/misc

Back to archive index

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;


Affelio-cvs メーリングリストの案内
Back to archive index