Beefy Boxes and Bandwidth Generously Provided by pair Networks
Think about Loose Coupling
 
PerlMonks  

GeekLog to Xoops Story Converter

by OverlordQ (Hermit)
on Feb 19, 2004 at 01:08 UTC ( [id://330104]=sourcecode: print w/replies, xml ) Need Help??
Category: Database
Author/Contact Info OverlordQ
Description: Converts the stories from a GeekLog to a Xoops database, it assumes a few things like author, host, all the hard coded values in the insert.
#!/usr/bin/perl -w

use strict;
use DBI;
use Date::Manip;

my $dbhr = DBI->connect("DBI:mysql:database=geeklog;host=remote.host",
+"username","password") or die "couldn't open database: $DBI::errstr;"
+;
my $dbhl = DBI->connect("DBI:mysql:database=xoops;host=localhost","use
+rname","password") or die "couldn't open database: $DBI::errstr\n";

my $sthr = $dbhr->prepare("SELECT sid,uid,date,title,introtext,bodytex
+t,hits FROM gl_stories ORDER BY date");
$sthr->execute() or die "Couldn't execure statement: $DBI::errstr;";

my $sthl;

while ( my ($storyid, $userid, $date, $title, $intro, $body, $hits) = 
+$sthr->fetchrow_array() ) {

    my $date2 = &ParseDate($date);
    my $secs = &UnixDate($date2,"%s");

    $intro =~ s/(?<!\\)((?:\\\\)*)'/$1\\'/g;
    $body =~ s/(?<!\\)((?:\\\\)*)'/$1\\'/g;

    $sthl = $dbhl->prepare("INSERT INTO xoops_stories VALUES ('$stid',
+'1','$title','$secs','$secs','0','129.130.179.134','0','0','$intro','
+$body','$hits','2','0','0','admin','0','R','0')");
    $sthl->execute() or die "Cannot execure statement: $DBI::errstr\n"
+;
    $stid++;

}

$sthr->finish();
$sthl->finish();

$dbhr->disconnect();
$dbhl->disconnect();

Log In?
Username:
Password:

What's my password?
Create A New User
Domain Nodelet?
Node Status?
node history
Node Type: sourcecode [id://330104]
help
Chatterbox?
and the web crawler heard nothing...

How do I use this?Last hourOther CB clients
Other Users?
Others having an uproarious good time at the Monastery: (4)
As of 2024-04-18 04:52 GMT
Sections?
Information?
Find Nodes?
Leftovers?
    Voting Booth?

    No recent polls found