求助: perl+ mysql

求助: perl+ mysql

下面是代码, 这段代码的目的显示employee表中的内容,并且显示在web上.
环境是:Tomact + mysql + perl.
现在运行的情况: 可以命令行到得结果,但是在web端不能得不到employee表中的内容.


use DBI;
use CGI;
use CGI qw/:standard/;
my $cgi = new CGI;

print $cgi -> header,
   $cgi -> start_html ('perl connection mysql sample'),
   $cgi -> h1 ('perl connection mysql sample'),

   

my $dbh = DBI->connect ("DBI:mysql:mytest:localhost","root","123456")|| die "Could not connect to database: ". DBI-> errstr;
   my $sth = $dbh->prepare("SELECT * FROM employee");
   $sth->execute();
   my $results = $sth->fetchrow_hashref();
     #print "Found a row: id = $results->{'id'}, name = $results->{'name'},role = $results->{'role'},location = $results->{'location'},email = $results->{'email'},pohne = $results->{'phone'},\n";
   
   print $cgi -> table(
           $cgi -> Tr( $cgi -> td(['id',$results->{'id'}]) ),
           $cgi -> Tr( $cgi -> td(['name',$results->{'name'}]) ),
                 $cgi -> Tr( $cgi -> td(['role',$results->{'role'}]) ),
                 $cgi -> Tr( $cgi -> td(['location',$results->{'location'}]) ),
                 $cgi -> Tr( $cgi -> td(['email',$results->{'email'}]) ),
                 $cgi -> Tr( $cgi -> td(['phone',$results->{'phone'}]) ),

   );
   
   $sth->finish();
   # Disconnect from the database.
   $dbh->disconnect();

   print $cgi -> end_html;

先建议加上use strict;

你看下apache的error_log里面有什么提示没有

表面上看是没啥问题
楼上的是高手,按照他说的测试一下吧


QUOTE:
原帖由 gawk 于 2008-8-29 17:34 发表
楼上的是高手,按照他说的测试一下吧

我很菜的。。。。这里版主才是高手唉。
这么长的代码看得头晕呀。
这么谦虚
在log中有下面的错误信息:

信息: cgi: runCGI (stderr)BI connect('database=mytest:host=localhost','root',...) failed: Can't create TCP/IP socket (10091) at C:\Tomcat 5.5\webapps\proejctname\WEB-INF\cgi\mysqlconn.cgi line 11

是不是我的web cgi没有配置好. 我在命令可以得到结果.
看样子是没连到数据库啊。你看下数据库DBD装的是否正确,数据库能否正常使用
我在命令行是可以取得数据库的数据. 这是为什么呢? 查看一下我的DBI,DBD-mysql都已经安装好了.