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();