I guess you have to finish in between prepares?
Arnold
On Tue, 12 Sep 2000 [EMAIL PROTECTED] wrote:
> Hi all,
>
> I got the following weird problem about DBI in mod_perl.
>
> Just a simple script which can run in the "cgi-bin",but failed in the mod_perl.
> When I check the error_log, I find the message:
> [Tue Sep 12 12:01:59 2000] [notice] child pid 1273 exit signal Segmentation fault
>(11)
>
> My linux box:
> perl 5.005_03,
> Apache/1.3.12 (Unix) with mod_perl/1.24,
> DBI-1.14,
> Mysql 3.22.32
>
> The http.conf about mod_perl:
> Alias /perl/ "/usr/local/apache/cgi-bin/"
> PerlTaintCheck On
> <Location /perl>
> AllowOverride None
> setenv MOD_PERL_TRACE ALL
> PerlSetupEnv Off
> SetHandler perl-script
> PerlHandler Apache::Registry
> PerlModule DBI CGI DBD::mysql
> PerlSetEnv PERL_DESTRUCT_LEVEL -1
> Options +ExecCGI
> Order allow,deny
> Allow from all
> </Location>
>
> The troublesome script is here:
> >>>------------------------------------------------------
> #!/usr/bin/perl -w
>
> use CGI qw/:standard/;
> use CGI::Carp 'fatalsToBrowser';
> use DBI;
> use strict;
>
> my $query= new CGI;
> my $dsn="DBI:mysql:database=authuser;host=localhost;port=3306";
> my $loginname="test";
> my $password="test";
> my @table;
> my ($dbh,$sth,$fields,$nums,$cols);
>
> print $query->header();
> print $query->start_html(-title=>'hello');
> print h3({-align=>'center'},"database");
> print "<center>";
>
> print "<table border=1>";
> print "<tr>";
>
> $dbh=DBI->connect($dsn,$loginname,$password,{RaiseError=>1}) || die "Can't
>connect!\n";
> $sth=$dbh->prepare("describe MemberAuth");
> $sth->execute();
> # list the column of the table
> $fields=$sth->fetchall_arrayref();
> foreach $nums (@$fields) {
> foreach $cols (@$nums[0]) {
> print "<td width=150 align=center>",$cols,"</td>";
> }
> }
> print "</tr>";
>
> $sth=$dbh->prepare("select * from MemberAuth");
> $sth->execute();
> # show the records of the table
> while(@table=$sth->fetchrow_array()) {
> print "<tr>";
> foreach my $data (@table) {
> print "<td width=150 align=center>",$data,"</td>";
> }
> print "</tr>";
> }
> $sth->finish();
> $dbh->disconnect;
>
> print "</center>";
> print $query->end_html;
>
> >>>---------------------------------------------------------------
>
> Any help will be appreciated!
>