Hi all,

I'm new to this list, so my apoligies if the problem of which I'm going
to tell isn't that thrilling to you any more. :)

The system I use is Linux 2.4.17, Perl 5.6.1, DBI 1.28.

I'm working on a web application consisting mainly of a CMS. Now
consider the following simple test script:

use Content::Category;
use DBD::mysql;
use Data::Dumper;

my $dbh;
$dbh = DBI->connect('DBI:mysql:database=baz', 'foo', 'me',
                     { RaiseError => 1, AutoCommit => 1 }) || die
$dbh->errstr;
print Dumper($dbh);
my $cat = Content::Category->new ($dbh, { 'arg1'  => 'something',
                                          'id'      => 1
                                        } );

$dbh->disconnect;

Content::Category does not query the database itself, but passes the
handler to its SUPER constructor in Content.pm. The funny thing now is
that, although Data::Dumper prints out something hopefully valuable
(VAR1 =  bless ( {}, DBI::db } ), I get (DBI_TRACE = 5) the following
strange output:

    DBI 1.28-nothread dispatch trace level set to 5
    -> DBI->connect(DBI:mysql:database=forum, forum, ****,
HASH(0x80fb7ac))
    -> DBI->install_driver(mysql) for linux perl=5.006001 pid=2705
ruid=0 euid=0
       install_driver: DBD::mysql version 2.1017 loaded from
/usr/local/lib/perl5/site_perl/5.6.1/i686-linux/DBD/mysql.pm
    New DBI::dr (for DBD::mysql::dr, parent=, id=)
    dbih_setup_handle(DBI::dr=HASH(0x8344368)=>DBI::dr=HASH(0x83c6a44),
DBD::mysql::dr, 0, Null!)
    dbih_make_com(Null!, DBD::mysql::dr, 84)
    dbih_setup_attrib(DBI::dr=HASH(0x83c6a44), Err, Null!)
SCALAR(0x82f0f20) (already defined)
    dbih_setup_attrib(DBI::dr=HASH(0x83c6a44), State, Null!)
SCALAR(0x83470c4) (already defined)
    dbih_setup_attrib(DBI::dr=HASH(0x83c6a44), Errstr, Null!)
SCALAR(0x82f0f38) (already defined)
    dbih_setup_attrib(DBI::dr=HASH(0x83c6a44), Debug, Null!) 0 (already
defined)
    dbih_setup_attrib(DBI::dr=HASH(0x83c6a44), FetchHashKeyName, Null!)
'NAME' (already defined)
    <- install_driver= DBI::dr=HASH(0x8344368)
    -> connect for DBD::mysql::dr (DBI::dr=HASH(0x8344368)~0x83c6a44
'database=forum' 'forum' **** HASH(0x8322c48))
    New DBI::db (for DBD::mysql::db, parent=DBI::dr=HASH(0x83c6a44),
id=HASH(0x83c6984))
    dbih_setup_handle(DBI::db=HASH(0x83c6a08)=>DBI::db=HASH(0x83c69c0),
DBD::mysql::db, 8341c90, HASH(0x83c6984))
    dbih_make_com(DBI::dr=HASH(0x83c6a44), DBD::mysql::db, 584)
    dbih_setup_attrib(DBI::db=HASH(0x83c69c0), Err,
DBI::dr=HASH(0x83c6a44)) SCALAR(0x82f0f20) (already defined)
    dbih_setup_attrib(DBI::db=HASH(0x83c69c0), State,
DBI::dr=HASH(0x83c6a44)) SCALAR(0x83470c4) (already defined)
    dbih_setup_attrib(DBI::db=HASH(0x83c69c0), Errstr,
DBI::dr=HASH(0x83c6a44)) SCALAR(0x82f0f38) (already defined)
    dbih_setup_attrib(DBI::db=HASH(0x83c69c0), Debug,
DBI::dr=HASH(0x83c6a44)) 0 (already defined)
    dbih_setup_attrib(DBI::db=HASH(0x83c69c0), FetchHashKeyName,
DBI::dr=HASH(0x83c6a44)) 'NAME' (already defined)
    dbih_setup_attrib(DBI::db=HASH(0x83c69c0), HandleError,
DBI::dr=HASH(0x83c6a44)) undef (not defined)
imp_dbh->connect: dsn = database=forum, uid = forum, pwd = wrumm
imp_dbh->MyLogin: dbname = forum, uid = forum, pwd = wrumm,host = NULL,
port = NULL
imp_dbh->mysql_dr_connect: host = NULL, port = 0, uid = forum, pwd =
wrumm
imp_dbh->mysql_dr_connect: client_flags = 0
imp_dbh->mysql_dr_connect: <-    <- connect= DBI::db=HASH(0x83c6a08) at
/usr/local/lib/perl5/site_perl/5.6.1/i686-linux/DBI.pm line 490 via
sbin/test.pl line 20
    -> STORE for DBD::mysql::db (DBI::db=HASH(0x83c69c0)~INNER
'RaiseError' 1)
    STORE DBI::db=HASH(0x83c69c0) 'RaiseError' => 1
    <- STORE= 1 at
/usr/local/lib/perl5/site_perl/5.6.1/i686-linux/DBI.pm line 532 via
sbin/test.pl line 20
    -> STORE for DBD::mysql::db (DBI::db=HASH(0x83c69c0)~INNER
'PrintError' 1)
    STORE DBI::db=HASH(0x83c69c0) 'PrintError' => 1
    <- STORE= 1 at
/usr/local/lib/perl5/site_perl/5.6.1/i686-linux/DBI.pm line 532 via
sbin/test.pl line 20
    -> STORE for DBD::mysql::db (DBI::db=HASH(0x83c69c0)~INNER
'AutoCommit' 1)
    <- STORE= 1 at
/usr/local/lib/perl5/site_perl/5.6.1/i686-linux/DBI.pm line 532 via
sbin/test.pl line 20
    <- connect= DBI::db=HASH(0x83c6a08)
SV = RV(0x8380498) at 0x83e08b4
  REFCNT = 1
  FLAGS = (ROK)
  RV = 0x83e08c0
        (in cleanup) dbih_getcom handle DBI::db=HASH(0x83e08c0) is not a DBI
handle (has no magic) at
/usr/local/lib/perl5/site_perl/5.6.1/i686-linux/Forum/Content/Node.pm
line 343.
SV = RV(0x8380474) at 0xbffff3a0
  REFCNT = 1
  FLAGS = (ROK,READONLY)
  RV = 0x83e08c0
SV = RV(0x838048c) at 0xbffff250
  REFCNT = 1
  FLAGS = (ROK,READONLY)
  RV = 0x83e08fc
        (in cleanup) dbih_getcom handle DBI::dr=HASH(0x83e08fc) is not a DBI
handle (has no magic) at
/usr/local/lib/perl5/site_perl/5.6.1/i686-linux/Forum/Content/Node.pm
line 343.
    -> disconnect for DBD::mysql::db (DBI::db=HASH(0x83c6a08)~0x83c69c0)
&imp_dbh->mysql: 83177cc
    <- disconnect= 1 at sbin/test.pl line 29
    <> DESTROY ignored for outer

What is going on? Can anyone give me a hint?

Many thanx in advance
regards
Martin

Reply via email to