#!/usr/local/bin/perl -w =head1 NAME updatem.pl - a script for creation of new database. =head1 SYNOPSIS updatem.pl [B<-m> I] =head1 DESCRIPTION Upadets metainformation in the B databse. Uses file L<./meta> unless [B<-m>] option is used =head1 BUGS The database, user and password are hardcoded. =head1 AUTHOR Dmitry Rubinstein =head1 $Id: updatem.pl,v 1.3 2000/10/17 01:53:44 boris Exp $ =cut use strict; use vars qw($opt_m); use Getopt::Std; use DBI; MAIN: { getopts('m:') or die "Wrong options"; my($source) = $opt_m || 'meta'; my($depth, @depthId); my($dbh) = DBI->connect("DBI:mysql:chgk", "piataev", "") or die "Can't connect to DB chgk\n"; open INFD, $source or die "Can't open input file: $!\n"; while () { my $MetaId; s/^\[(\d*)\]\t//; $MetaId = $1; s/^(\t*)//; chomp; $depth = length($1); my $title = $dbh->quote($_); my $ParentId = ($depth) ? $depthId[$depth - 1] : 0; my ($sth) = $dbh->prepare("SELECT Id FROM Tournaments WHERE MetaId=$MetaId"); $sth->execute; if ($sth->fetchrow) { print "$title is already in the DB!\n"; next; } $sth = $dbh->prepare("INSERT INTO Tournaments (Title, ParentId, MetaId, Type) VALUES ($title, $ParentId, $MetaId, 'ç')"); $sth->execute; my $Id = $sth->{'mysql_insertid'}; $depthId[$depth] = $Id; } $dbh->disconnect; }