Given this code:
package A;
use base 'Rose::DB::Object';
__PACKAGE__->meta->setup(table => 't1', columns => [ qw(id a) ]);
our $DB;
sub init_db
{
my $dbh = DBI->connect_cached('DBI:mysql:test', 'root');
return $DB = Rose::DB->new(driver => 'mysql', dbh => $dbh) unless($DB);
$DB->dbh($dbh);
return $DB;
}
package main;
DBI->trace(1);
my $o = A->new(id => 1, a => 5)->save;
my $o2 = A->new(id => 1)->load;
$o = undef;
$o2->delete;
The full DBI trace output is included below. I don't see multiple
disconnects (or any disconnects, really) in the output, so I'm pretty
sure it's only using one $dbh.
-John
---
DBI 1.54-nothread default trace level set to 0x0/1 (pid 9836) at
new.pl line 23
-> DBI->connect_cached(DBI:mysql:test, root, ****)
<- default_user('root' undef ...)= ( 'root' undef ) [2 items] at
DBI.pm line 615
<- connect_cached('test' 'root' ...)= DBI::db=HASH(0x1810ba8) at
DBI.pm line 627
<- STORE('PrintError' 1)= 1 at DBI.pm line 678
<- STORE('AutoCommit' 1)= 1 at DBI.pm line 678
<- STORE('dbi_connect_method' 'connect_cached')= 1 at DBI.pm line 681
<> FETCH('dbi_connect_method')= 'connect_cached'
('dbi_connect_method' from cache) at DBI.pm line 681
<- STORE('Username' 'root')= 1 at DBI.pm line 681
<> FETCH('Username')= 'root' ('Username' from cache) at DBI.pm line 681
<- connected('DBI:mysql:test' 'root' ...)= undef at DBI.pm line 687
<- connect= DBI::db=HASH(0x1810ba8)
<- STORE('dbi_connect_closure' CODE(0x1a6a98c))= 1 at DBI.pm line 696
<- FETCH('Driver')= DBI::dr=HASH(0x1849888) at DB.pm line 691
<> FETCH('Name')= 'mysql' ('Name' from cache) at DB.pm line 700
<- FETCH('RaiseError')= '' at Object.pm line 980
<- STORE('RaiseError' undef)= 1 at Object.pm line 980
<- STORE('RaiseError' 1)= 1 at Object.pm line 980
<- prepare_cached('INSERT INTO t1
(
a,
id
)
VALUES
(
?,
?
)' undef ...)= DBI::st=HASH(0x1a6ae00) at Object.pm line 1078
<- execute(5 1)= 1 at Object.pm line 1106
<- STORE('RaiseError' '')= 1 at Object.pm line 978
-> DBI->connect_cached(DBI:mysql:test, root, ****)
<- default_user('root' undef ...)= ( 'root' undef ) [2 items] at
DBI.pm line 615
<- connect_cached('test' 'root' ...)= DBI::db=HASH(0x1810ba8) at
DBI.pm line 627
<- STORE('PrintError' 1)= 1 at DBI.pm line 678
<- STORE('AutoCommit' 1)= 1 at DBI.pm line 678
<- STORE('dbi_connect_method' 'connect_cached')= 1 at DBI.pm line 681
<> FETCH('dbi_connect_method')= 'connect_cached'
('dbi_connect_method' from cache) at DBI.pm line 681
<- STORE('Username' 'root')= 1 at DBI.pm line 681
<> FETCH('Username')= 'root' ('Username' from cache) at DBI.pm line 681
<- connected('DBI:mysql:test' 'root' ...)= undef at DBI.pm line 687
<- connect= DBI::db=HASH(0x1810ba8)
<- STORE('dbi_connect_closure' CODE(0x180f6ec))= 1 at DBI.pm line 696
<- FETCH('Driver')= DBI::dr=HASH(0x1849888) at DB.pm line 691
<> FETCH('Name')= 'mysql' ('Name' from cache) at DB.pm line 700
<- FETCH('RaiseError')= '' at Object.pm line 346
<- STORE('RaiseError' undef)= 1 at Object.pm line 346
<- STORE('RaiseError' 1)= 1 at Object.pm line 346
<- prepare_cached('SELECT a, id FROM t1 WHERE id = ?' undef ...)=
DBI::st=HASH(0x1a90890) at Object.pm line 374
<- execute(1)= 1 at Object.pm line 378
<- bind_columns(undef SCALAR(0x180fb84) ...)= 1 at Object.pm line 382
<- fetch= [ '5' '1' ] row1 at Object.pm line 384
<- rows= '1' at Object.pm line 386
<- finish= 1 at Object.pm line 388
<- STORE('RaiseError' '')= 1 at Object.pm line 344
<- FETCH('RaiseError')= '' at Object.pm line 1425
<- STORE('RaiseError' undef)= 1 at Object.pm line 1425
<- STORE('RaiseError' 1)= 1 at Object.pm line 1425
-> DBI->connect_cached(DBI:mysql:test, root, ****)
<- default_user('root' undef ...)= ( 'root' undef ) [2 items] at
DBI.pm line 615
<- connect_cached('test' 'root' ...)= DBI::db=HASH(0x1810ba8) at
DBI.pm line 627
<- STORE('PrintError' 1)= 1 at DBI.pm line 678
<- STORE('AutoCommit' 1)= 1 at DBI.pm line 678
<- STORE('dbi_connect_method' 'connect_cached')= 1 at DBI.pm line 681
<> FETCH('dbi_connect_method')= 'connect_cached'
('dbi_connect_method' from cache) at DBI.pm line 681
<- STORE('Username' 'root')= 1 at DBI.pm line 681
<> FETCH('Username')= 'root' ('Username' from cache) at DBI.pm line 681
<- connected('DBI:mysql:test' 'root' ...)= undef at DBI.pm line 687
<- connect= DBI::db=HASH(0x1810ba8)
<- STORE('dbi_connect_closure' CODE(0x18109b0))= 1 at DBI.pm line 696
<- FETCH('Driver')= DBI::dr=HASH(0x1849888) at DB.pm line 691
<> FETCH('Name')= 'mysql' ('Name' from cache) at DB.pm line 700
<- prepare_cached('DELETE FROM t1 WHERE id = ?' undef ...)=
DBI::st=HASH(0x180fad0) at Object.pm line 1428
<- execute('1')= 1 at Object.pm line 1432
<- rows= '1' at Object.pm line 1434
<- STORE('RaiseError' '')= 1 at Object.pm line 1423
<- disconnect_all= (not implemented) at DBI.pm line 705
! <- DESTROY(DBI::st=HASH(180fad0))= undef during global destruction
! <- DESTROY(DBI::st=HASH(1a6ae00))= undef during global destruction
! <- DESTROY(DBI::st=HASH(1a66e48))= undef during global destruction
! <- DESTROY(DBI::db=HASH(1810ba8))= undef during global destruction
! <- DESTROY(DBI::dr=HASH(1849888))= undef during global destruction
-------------------------------------------------------------------------
This SF.net email is sponsored by DB2 Express
Download DB2 Express C - the FREE version of DB2 express and take
control of your XML. No limits. Just data. Click to get it now.
http://sourceforge.net/powerbar/db2/
_______________________________________________
Rose-db-object mailing list
[email protected]
https://lists.sourceforge.net/lists/listinfo/rose-db-object