I'm groveling...Please help.  I'm extremely frustrated with this, so
forgive the reposting.  I added the Carp module as suggested in the
"mod_perl guide: mod_perl and Relational Databases" web pages.  Now
in the Logs I have the following:

[Thu Sep 21 15:30:34 2000] [error] Before Tie
[Thu Sep 21 15:30:34 2000] Carp.pm: Had to create DBD::mysql::dr::imp_data_size
unexpectedly at /usr/local/perl/lib/site_perl/5.6.0/sun4-solaris/DBI.pm line
687.
[Thu Sep 21 15:30:34 2000] Carp.pm: Had to create DBD::mysql::db::imp_data_size
unexpectedly at /usr/local/perl/lib/site_perl/5.6.0/sun4-solaris/DBI.pm line
687.
[Thu Sep 21 15:30:34 2000] [error] [Thu Sep 21 15:30:34 2000] Carp.pm: Undefined
 subroutine &DBD::mysql::db::_login called at
/usr/local/perl/lib/site_perl/5.6.0/sun4-solaris/DBD/mysql.pm line 131.


Versions of software I'm using:
ApacheDBI-0.87
DBI-1.14
Tie-DBI-0.91
Apache_1.2.12
mod_perl-1.24

The tie example below works when executed on the command line:
#!/usr/local/perl/bin/perl
use Tie::DBI ();

$table = "Users";  $key   = "UserName";
$user  = "xxxxxx"; $pass  = "yyyyyyy";

tie my %DB, 'Tie::DBI', {
     'db' => 'mysql:ids',
     'table'   => $table,
     'key'     => $key,
     'user'    => $user,
     'password' => $pass } or print "Error\n";

while (($key,$value) = each %DB) {
     print "Key = $key:\n";
     foreach (sort keys %$value) {
          print "\t$_ => $value->{$_}\n";
     }
}

ANY help would be greatly appreciated.  Feel free to
respond directly if you prefer.  Thanks in advance.
---------------------- Forwarded by Todd Bruner/USA/BAC on 09/21/2000 02:50 PM
---------------------------


Todd Bruner
09/20/2000 03:55 PM

To:   [EMAIL PROTECTED]
cc:
Subject:  Having difficulties with Tie::DBI and mod_perl

Please forgive what may be an often encountered problem, but
I haven't found anything helpful in the archive or other online sources.

I am encountering a problem that I can't figure out when trying to access
a Mysql database from with mod_perl using Tie::DBI.  I am having
similar problems when I use straight DBI as well.  I eventually wish
to use Apache::DBI for a persistent connection, but I can't get this
to work first.

Here's the particulars:

Problem: programs that try to access the database just stop, no error in
         in logs.  Logging statements or print statements after an attempted
      access to the db are never executed.

http.conf contains the following entry (otherwise everything is standard)
(Placed at beginning of httpd.conf if placement location matters)

# Load mod_perl specific stuff
<IfModule mod_perl.c>
Include conf/perl.conf
</IfModule>

perl.conf contains the following:

PerlRequire             conf/startup.pl
PerlFreshRestart        On

<Location /test>
 SetHandler     perl-script
 PerlHandler    Apache::test
</Location>

My startup.pl contains the following:

#!/usr/bin/perl

BEGIN {
     use Apache ();
     use lib Apache->server_root_relative('lib/perl');
}

# commonly used modules
use Apache::Constants ();
use CGI qw(-compile :all);
use CGI::Carp ();

##
1;

<apache-root>/lib/perl/Apache/test.pm contains:

package Apache::test;
use strict;
use CGI qw(:standard);
use Apache::Constants qw(:common);
use Tie::DBI;
sub handler {
        my $r = shift;
     $r->log_error("Before Tie");
        tie my %DB, 'Tie::DBI', {
                'db'            => 'mysql:userdb',
                'table'         => 'Users',
                'key'           => 'UserName',
                'user'          => 'uuuuuuu',
                'password'      => 'ppppppp',
        } or return SERVER_ERROR;
     $r->log_error("After Tie");
        print   header(),
                start_html(     -title  => 'Test' ,
                                -bgcolor=> 'white');
        while ( my ($key,$value) = each %DB ) {
                print "Key=$key \n";
                foreach (sort keys %$value) {
                        print "\t$_ => $value->{$_}\n";
                }
        }
        print   end_html();
}
1;
__END__

I start and stop apache with apachectl.  I then point my browser to

http://myserver/test

and nothing happens.  Browser pops up a dialog saying: "Document contains
no Data..." and the only entry is the "Before Tie" in the apache error log.
No errors in the mysql error log either.

What am I missing???

Thanks in advance for the help.

Todd



Reply via email to