|
Lines 97-105
environment variable to the pathname of a configuration file to use.
Link Here
|
| 97 |
# file (/etc/koha/koha-conf.xml). |
97 |
# file (/etc/koha/koha-conf.xml). |
| 98 |
# dbh |
98 |
# dbh |
| 99 |
# A handle to the appropriate database for this context. |
99 |
# A handle to the appropriate database for this context. |
| 100 |
# dbh_stack |
|
|
| 101 |
# Used by &set_dbh and &restore_dbh to hold other database |
| 102 |
# handles for this context. |
| 103 |
# Zconn |
100 |
# Zconn |
| 104 |
# A connection object for the Zebra server |
101 |
# A connection object for the Zebra server |
| 105 |
|
102 |
|
|
Lines 601-614
Returns a database handle connected to the Koha database for the
Link Here
|
| 601 |
current context. If no connection has yet been made, this method |
598 |
current context. If no connection has yet been made, this method |
| 602 |
creates one, and connects to the database. |
599 |
creates one, and connects to the database. |
| 603 |
|
600 |
|
| 604 |
This database handle is cached for future use: if you call |
|
|
| 605 |
C<C4::Context-E<gt>dbh> twice, you will get the same handle both |
| 606 |
times. If you need a second database handle, use C<&new_dbh> and |
| 607 |
possibly C<&set_dbh>. |
| 608 |
|
| 609 |
=cut |
601 |
=cut |
| 610 |
|
602 |
|
| 611 |
#' |
|
|
| 612 |
sub dbh |
603 |
sub dbh |
| 613 |
{ |
604 |
{ |
| 614 |
my $self = shift; |
605 |
my $self = shift; |
|
Lines 642-699
sub new_dbh
Link Here
|
| 642 |
return &dbh({ new => 1 }); |
633 |
return &dbh({ new => 1 }); |
| 643 |
} |
634 |
} |
| 644 |
|
635 |
|
| 645 |
=head2 set_dbh |
|
|
| 646 |
|
| 647 |
$my_dbh = C4::Connect->new_dbh; |
| 648 |
C4::Connect->set_dbh($my_dbh); |
| 649 |
... |
| 650 |
C4::Connect->restore_dbh; |
| 651 |
|
| 652 |
C<&set_dbh> saves the current database handle on a stack, then sets |
| 653 |
the current database handle to C<$my_dbh>. |
| 654 |
|
| 655 |
C<$my_dbh> is assumed to be a good database handle. |
| 656 |
|
| 657 |
=cut |
| 658 |
|
| 659 |
#' |
| 660 |
sub set_dbh |
| 661 |
{ |
| 662 |
my $self = shift; |
| 663 |
my $new_dbh = shift; |
| 664 |
|
| 665 |
# Save the current database handle on the handle stack. |
| 666 |
# We assume that $new_dbh is all good: if the caller wants to |
| 667 |
# screw himself by passing an invalid handle, that's fine by |
| 668 |
# us. |
| 669 |
push @{$context->{"dbh_stack"}}, $context->{"dbh"}; |
| 670 |
$context->{"dbh"} = $new_dbh; |
| 671 |
} |
| 672 |
|
| 673 |
=head2 restore_dbh |
| 674 |
|
| 675 |
C4::Context->restore_dbh; |
| 676 |
|
| 677 |
Restores the database handle saved by an earlier call to |
| 678 |
C<C4::Context-E<gt>set_dbh>. |
| 679 |
|
| 680 |
=cut |
| 681 |
|
| 682 |
#' |
| 683 |
sub restore_dbh |
| 684 |
{ |
| 685 |
my $self = shift; |
| 686 |
|
| 687 |
if ($#{$context->{"dbh_stack"}} < 0) |
| 688 |
{ |
| 689 |
# Stack underflow |
| 690 |
die "DBH stack underflow"; |
| 691 |
} |
| 692 |
|
| 693 |
# Pop the old database handle and set it. |
| 694 |
$context->{"dbh"} = pop @{$context->{"dbh_stack"}}; |
| 695 |
} |
| 696 |
|
| 697 |
=head2 userenv |
636 |
=head2 userenv |
| 698 |
|
637 |
|
| 699 |
C4::Context->userenv; |
638 |
C4::Context->userenv; |
| 700 |
- |
|
|