#=======================LOADING THE .TXT TO THE DATABASE======================== # get a list of all gamenames in the table my $select = $dbh->prepare( "SELECT gamename FROM games"); $select->execute() || die $dbh->errstr; # convert to hash for quick lookup in file-reading loop my %gamename_hash = (); while (my @gn = $select->fetchrow_array) { $gamename_hash{$gn[0]} = 1; } open (FILE, "<../data/games/descriptions.txt") or die $!; while () { chomp; next unless (length); # Skip if blank line my ($name, $desc) = split(/\t/, $_, 2); if ($gamename_hash{$name}) { # The gamename is already in the table. Increment the counter. $dbh->do( "UPDATE games SET gamecounter=gamecounter+1 WHERE (gamename=?)", undef, $name) || die $dbh->errstr; } else { # The gamename is not in the table. Create a new record. $dbh->do( "INSERT INTO games (gamename, gamedesc, gamecounter) VALUES (?,?,?)", undef, ($name, $desc, 0) ) || die $dbh->errstr; } } close (FILE);