Beefy Boxes and Bandwidth Generously Provided by pair Networks
"be consistent"

Re: Re: DBI Help!

by peppiv (Curate)
on Jan 16, 2002 at 00:00 UTC ( #139010=note: print w/replies, xml ) Need Help??

in reply to Re: DBI Help!
in thread DBI script gives HTTP 500 error

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/ 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.

Replies are listed 'Best First'.
Re: Re: Re: DBI Help!
by runrig (Abbot) on Jan 16, 2002 at 00:25 UTC
    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"
        You'll need to specify the entire path to the file. 'C:/blah/blah/cgi-bin/blah/blah' or whatever...

Log In?

What's my password?
Create A New User
Node Status?
node history
Node Type: note [id://139010]
and the web crawler heard nothing...

How do I use this? | Other CB clients
Other Users?
Others lurking in the Monastery: (4)
As of 2021-06-23 17:02 GMT
Find Nodes?
    Voting Booth?
    What does the "s" stand for in "perls"? (Whence perls)

    Results (121 votes). Check out past polls.