
cuboidgraphix
User
Jan 15, 2009, 7:27 AM
Post #18 of 22
(14499 views)
|
Re: [FishMonger] Help Parsing a line please.
[In reply to]
|
Can't Post
|
|
OK guys ... a lil help please? The following is my updated code.
#!/usr/bin/perl # This file is the parser.pl # This is a script that will parse data collected by collector.pl # and insert the data into a MySQL database. use strict; use warnings; use DBI; use DBD::mysql; use Text::ParseWords; use Date::Parse; my $host = 'localhost'; my $database = 'DB'; my $tablename = 'TN'; my $user = 'USR'; my $pass = 'PWD'; # Data source name my $dsn = "dbi:mysql:$database:localhost:3306"; # Perl DBI Connect my $dbh = DBI->connect($dsn, $user, $pass); my $file = $ARGV[0] || die "Usage: $0 <filename>\n"; open my $FH, '<', $file or die "Can't open '$file' $!"; my $sth = $dbh->prepare("INSERT INTO $tablename VALUES (?,?,?,?,?,?,?,?,FALSE)"); while (<$FH>) { next if $_ !~ /^#/; my (undef, $index, $status, $activity, $datetime, $source, $severity, $faultname) = quotewords('\s+', 0, $_); my ($time) = $datetime =~ /(\S+)$/; my (undef,undef,undef,$day,$month,$year) = strptime($datetime); my $date = sprintf("%4d-%02d-%02d",$year+2000,$month+1,$day); $sth->execute($index, $status, $activity, $date, $time, $source, $severity, $faultname); } close $FH; It works and gets inserted into the database... The problem is that I get these error codes..
DBD::mysql::st execute failed: Duplicate entry '90149-Clear-2009-01-15-00:07:51' for key 1 at /home/bsm/parser.pl line 37, <$FH> line 6. DBD::mysql::st execute failed: Duplicate entry '1903042-Clear-2009-01-15-00:10:32' for key 1 at /home/bsm/parser.pl line 37, <$FH> line 7. DBD::mysql::st execute failed: Duplicate entry '1753818-Clear-2009-01-15-01:50:32' for key 1 at /home/bsm/parser.pl line 37, <$FH> line 10. DBD::mysql::st execute failed: Duplicate entry '1825718-Clear-2009-01-15-05:43:15' for key 1 at /home/bsm/parser.pl line 37, <$FH> line 16. DBD::mysql::st execute failed: Duplicate entry '1825719-Clear-2009-01-15-05:43:31' for key 1 at /home/bsm/parser.pl line 37, <$FH> line 17. DBD::mysql::st execute failed: Duplicate entry '1692552-Clear-2009-01-15-06:40:31' for key 1 at /home/bsm/parser.pl line 37, <$FH> line 20. DBD::mysql::st execute failed: Duplicate entry '1852117-Clear-2009-01-15-07:44:02' for key 1 at /home/bsm/parser.pl line 37, <$FH> line 24. DBD::mysql::st execute failed: Duplicate entry '1852118-Clear-2009-01-15-07:44:03' for key 1 at /home/bsm/parser.pl line 37, <$FH> line 25. DBD::mysql::st execute failed: Duplicate entry '1852119-Clear-2009-01-15-07:44:03' for key 1 at /home/bsm/parser.pl line 37, <$FH> line 26. Why is this? Am I missing something? Thanks.
|