Обсуждение: ack... problems with Pg, please advise.

Поиск
Список
Период
Сортировка

ack... problems with Pg, please advise.

От
jeff
Дата:
hello, i just installed postgreSQL and it works great, i imported my db
and it works great with the psql interface, and i even can access it
from the shell with a perl script. but when i cut and paste the code
into a cgi, it returns nulls (albiet the appropriate number of nulls).
here is my code, what am i doing wrong? thanks.

<begin code snippet>

unless ($a) {$a="Metallica";}

$conn = Pg::connectdb("dbname=tempest");
(PGRES_CONNECTION_OK eq $conn->status )
    and print "Pg::connectdb ........... ok<br>"
    or  die   "Pg::connectdb ........... not ok: ", $conn->errorMessage;

# this part works, as the "ok" message is shown on the page...

$result = $conn->exec("SELECT title from cds where artist='$a'");

  while ( @row=$result->fetchrow ) {
         print "@row";
         print "<br>\n";
                  }
<end code snippet>

    it returns the correct number of <br>s, but prints nothing, @rows
appear to be null. any ideas?

Re: [INTERFACES] ack... problems with Pg, please advise.

От
Kevin Lo
Дата:
Jeff wrote:

> hello, i just installed postgreSQL and it works great, i imported my db
> and it works great with the psql interface, and i even can access it
> from the shell with a perl script. but when i cut and paste the code
> into a cgi, it returns nulls (albiet the appropriate number of nulls).
> here is my code, what am i doing wrong? thanks.
>
> <begin code snippet>
>
> unless ($a) {$a="Metallica";}
>
> $conn = Pg::connectdb("dbname=tempest");
> (PGRES_CONNECTION_OK eq $conn->status )
>     and print "Pg::connectdb ........... ok<br>"
>     or  die   "Pg::connectdb ........... not ok: ", $conn->errorMessage;
>
> # this part works, as the "ok" message is shown on the page...
>
> $result = $conn->exec("SELECT title from cds where artist='$a'");

From the DBI module documentation:

    Note that prepare should never execute a statement,

so this should be

  $rc = $dbh->do("SELECT title from cds where artist='$a'")
     or die $DBI::errstr;

>   while ( @row=$result->fetchrow ) {
>          print "@row";
>          print "<br>\n";
>                   }
> <end code snippet>
>
>         it returns the correct number of <br>s, but prints nothing, @rows
> appear to be null. any ideas?

BTW, would you check the log file of httpd server to see if any fails?

Regards,
Kevin.