There are many ways to do this... One way would be the OO approach, i.e. open the connection when constructing a DB object, and store $dbh as an attribute, which you can always access via the respective DB instance (and thus don't have to pass around). Then you don't even need Exporter and stuff... For example something like this:
package DB; use strict; use DBI; sub new { my $class = shift; my $dsn = shift; my $dbh = DBI->connect($dsn, "", "",{RaiseError=>1, AutoCommit=>1} +); return bless { _dbh => $dbh }, $class; } sub dbh { my $self = shift; return $self->{_dbh}; } sub createtb { my ($self, $form, $tabler) = @_; my $dbh = $self->dbh(); # ... } # --- Test.pl use strict; use DB; use SQL::Abstract; my $sql = SQL::Abstract->new(); my $db = DB->new("dbi:SQLite:dbname=test.db"); # ... $db->createtb($form2,$popsamp); # ...
In reply to Re: Database module question
by almut
in thread Database module question
by baxy77bax
| For: | Use: | ||
| & | & | ||
| < | < | ||
| > | > | ||
| [ | [ | ||
| ] | ] |