SPUG: Two errors I need hashing out

Daryn Nakhuda daryn at marinated.org
Tue Jan 15 12:39:34 CST 2002


1. check to see that the filehandle is really getting opened.
2. you're trying to insert a duplicate value into a field that doesn't 
allow dupes. Is either the uid or id the primary key or a unique index on 
the table per chance? 


On Tue, 15 Jan 2002, Susanne Bullo wrote:

> Being new, I still haven't a complete clue as to what I'm doing.  The listed
> program is giving the following two errors:
> 
> print on closed filehandle main::FILE at sunday line 61.
> DBD::mysql::st execute failed: Duplicate entry '127' for key 1 at sunday
> line 79.
> 
> I'm at a loss as to what the first one is.  The second one I'm thinking has
> to do with number assigning within the database but I'm not completely sure
> (there is an id of 127 within the database but that is under id and not
> under uid which seems to be what "key 1" is referencing).
> 
> If anyone has a soft spot for a newbie and wants to help me out, I'd
> appreciate it!
> 
> #!/usr/bin/perl -w
> use Time::Local;
> use POSIX qw(mktime);
> use DBI;
> use LWP::UserAgent;
> use HTTP::Request;
> use HTTP::Response;
> &get_date;
> sub get_date {
> @days = ('Sunday','Monday','Tuesday','Wednesday',
> 'Thursday','Friday','Saturday');
> @months = ('January','February','March','April','May','June','July',
> 'August','September','October','November','December');
> ($sec,$min,$hour,$mday,$mon,$year,$wday) = (localtime(time))[0,1,2,3,4,5,6];
> $time = sprintf("%02d:%02d",$hour,$min);
> if ($year < 50){
> $year += 2000;
> }
> else {
> $year += 1900;
> }
> $date = "$days[$wday], $months[$mon] $mday, $year at $time";
> $mon2 = $mon + 1;
> $date2 = "$mon2/$mday/$year";
> $date3 = "$mon2.$mday.$year";
> }
> my $buffer = '';
> my $buffer2 = '';
> my $buffer3 = '';
> my $host = 'localhost';
> my $database = 'safelist';
> my $username = 'admin';
> my $password = 'srb6653';
> my $ua = new LWP::UserAgent();
> my $dbh = DBI->connect("DBI:mysql:$database", $username, $password) || die
> "Failed DBI connect(): $!\n";
> my $query = "SELECT safelists.email_to, safelists.username,
> safelists.password, email_txt.email_subject, email_txt.email_text,
> safelists.uid, members.email from safelists, schedule, email_txt, members
> where email_txt.id = schedule.SUN and schedule.system_name =
> safelists.system_name and members.id = safelists.uid and
> email_txt.email_subject != ''";
> $buffer .= "===> Executing Query: $query\n\n";
> my $sth = $dbh->prepare($query);
> my $rc = $sth->execute();
> while
> (my($email_to,$username,$password,$email_subject,$email_text,$system_name,$u
> id,$email) = $sth->fetchrow_array) {
> my $url = "http://$email_to?action=Send This
> Message&username=$username&password=$password&subject=$email_subject&message
> =$email_text";
> $email_text =~ s/\\//g;
> my $req = HTTP::Request->new(GET=>$url);
> my $file_path = "./members/data/$username/$system_name/$date3.txt";
> my $resp = $ua->request($req, $file_path);
> my $sec_file_path = "members/data/$username";
> my $outfile = "index.html";
> my $filename = "$sec_file_path/$outfile";
> open (FILE,">>$filename");
> Line 61 -->{ print FILE "<a href=$sec_file_path>Problem on $date3</a>"; }
> close (FILE);
> }
> my $query2 = "SELECT safelists.uid, schedule.system_name from safelists,
> schedule where schedule.system_name = safelists.system_name and schedule.SUN
> != '0'";
> $buffer2 .= "===> Executing Query: $query2\n\n";
> my $sth = $dbh->prepare($query2);
> my $rc = $sth->execute();
> while (my($uid,$system_name) = $sth->fetchrow_array) {
> my $datestamp = $date2;
> my $timestamp = $time;
> my $query3 = "INSERT into reports (uid, system_name, last_success_run, id)
> values ('$uid', '$system_name', '$datestamp at $timestamp', '')";
> $buffer3 .= "===> Executing Query: $query3\n\n";
> my $sth = $dbh->prepare($query3);
> Line 79 -->my $rc = $sth->execute();
> }
> undef $sth;
> $dbh->disconnect;
> 0;
> 
> Susanne Bullo - Sweet Homes
> DirectTV DSL
> Get Paid to Read Email!
> 
> 

-- 



 - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
     POST TO: spug-list at pm.org       PROBLEMS: owner-spug-list at pm.org
      Subscriptions; Email to majordomo at pm.org:  ACTION  LIST  EMAIL
  Replace ACTION by subscribe or unsubscribe, EMAIL by your Email-address
 For daily traffic, use spug-list for LIST ;  for weekly, spug-list-digest
     Seattle Perl Users Group (SPUG) Home Page: http://zipcon.net/spug/





More information about the spug-list mailing list