note
tcf03
This should do what you are looking to do.<br/><br/>
<code>
#!/usr/bin/perl
use strict;
use warnings;
use DBI;
sub dbConnect{
my ($database, $username, $password, $hostname) = @_;
my $db = DBI->connect("DBI:SQLite:$database:$hostname", $username,
$password) || die "Cannot connect to host database.".$DBI::errstr;
return $db;
}
sub dbDisconnect{
my ($db) = @_;
$db->disconnect;
}
sub dbINSERT{
my $table = shift;
my $set = shift;
my @values = @_;
my($database) = "myDB";
my($username) = "username";
my($password) = "password";
my($hostname) = "myHost.com";
my $db = dbConnect($database, $username, $password, $hostname);
my $vals = join',', map { $db->quote($_) } @values;
my $query = qq|INSERT into $table ($set) VALUES ($vals)|;
print "$query\n";
$query = $db->prepare($query); #LINE 31
$query->execute; #LINE 40
$query->finish;
dbDisconnect($db);
}
sub dbUPDATE{
# Do updates here
}
sub dbDELETE{
# Do deletes here
}
dbINSERT('ORGANISM', 'ORG_NAME, GI, NC', "11111111", "some bacteria", "NC_000000");
</code>
Though, I would move the db connection out of the insert/delete/update subs and just do something like this
<code>
#!/usr/bin/perl
use strict;
use warnings;
use DBI;
sub dbConnect{
my ($database, $username, $password, $hostname) = @_;
my $db = DBI->connect("DBI:SQLite:$database:$hostname", $username,
$password) || die "Cannot connect to host database.".$DBI::errstr;
return $db;
}
sub dbINSERT{
my $db = shift;
my $table = shift;
my $set = shift;
my @values = @_;
my $vals = join',', map { $db->quote($_) } @values;
my $query = qq|INSERT into $table ($set) VALUES ($vals)|;
print "$query\n";
$query = $db->prepare($query); #LINE 31
return ( $query->execute ) : 0 : 1;
}
sub dbUPDATE{
# Do updates here
}
sub dbDELETE{
# Do deletes here
}
my $db = dbConnect("myDB", "username", "password", "myHost.com");
my $status = ( dbINSERT($db, 'ORGANISM', 'ORG_NAME, GI, NC', "11111111", "some bacteria", "NC_000000") == 0 ) ? 0 : 1;
END { $db->disconnect }
</code>
Its untested, but should work fine for you.<br/><br/>
<b>Update</b> added return code from insert and removed disconnect sub. After re-reading your original post - you may wish to re-add the disconnect sub ( and remove the END block ) as this looks to be part of a larger program<br/><br/>
<div class="pmsig"><div class="pmsig-402726">
Ted<br>
--<br>
<i>"That which we persist in doing becomes easier, not that the task itself has become easier, but that our ability to perform it has improved."</i><br>
--Ralph Waldo Emerson
</div></div>
655239
655239