in reply to DBI script gives HTTP 500 error

Hmm... ghosty problems like this are the worst.

Check your HTTP server's error log, and see what the exact error is. This might give a little more insight than the good ole "compilation errors" message.

Good luck, my brother...
perl -e 's=$;$/=$\;W=i;$\=$/;s;;XYW\\U$"\;\);sig,$_^=$[x5,print;'

Replies are listed 'Best First'.
Re: Re: DBI Help!
by peppiv (Curate) on Jan 16, 2002 at 00:00 UTC
    OK, found the damn error logs. Finally get the message:

    Can't modify constant item in scalar assignment at /usr/local/etc/httpd/cgi-bin/DBI_start3.pl line 11, near "]}"

    $dbh->{'col_names' = ["timestamp", "email", "name", "address", "city", + "state", "zip"]};


    Any idea what this means? I can't find this error in my docs.
      Did you read jonjacobmoon's post??

      Your reply to his post indicates you did read it and changed your code. What did you do? Change it back? That indicates a lack of basic understanding...I suggest first understanding what your code does. You are trying to assign an array reference to a string constant...not a good thing.

        I finally went through the error logs (I swear they weren't where they were supposed to be, then next time I check - there they are!).

        I tried to find a simple sample script to make sure my DBI connection works and then I would build on it from there. But alas, I could find nothing. So I took the simplest test script I could find and try to make it work. I'm almost there. It appears my last hurdle is finding out how to name a table in an Excel CSV file that was never given one. Here's where I'm at:
        #!/usr/bin/perl -w use strict; use DBI; use CGI::Carp qw(fatalsToBrowser); use CGI qw (:standard); print "Content-type: text/html\n\n"; my $dbh = DBI->connect("DBI:CSV:f_dir=/cgi-bin/Book1") or die "Can't + connect to Book1: $DBI::errstr"; $dbh->{'csv_tables'}->{'info'} = {'col_names' => ["timestamp", "e +mail", "name", "address", "city", "state", "zip"]}; my $sth = $dbh->prepare( q{SELECT email FROM info WHERE state = ? }) + or die "Can't prepare statement: $DBI::errstr"; my $rc = $sth->execute ('OH') or die "Can't execute statement: $DBI: +:errstr"; print "Query will return $sth->{NUM_OF_FIELDS} fields.\n\n"; print "Field names: @{ $sth->{NAME} }\n"; while (my @result = $sth->fetchrow_array()) { print "@result\n"; } # check for problems which may have terminated the fetch early die $sth->errstr if $sth->err; $dbh->disconnect;

        It returns an error (ToBrowser) "Cannot open /cgi-bin/Book1/info: No such file or directory"