in reply to Query Formatting
Though, I would move the db connection out of the insert/delete/update subs and just do something like this#!/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");
Its untested, but should work fine for you.#!/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 }
|
|---|
| Replies are listed 'Best First'. | |
|---|---|
|
Re^2: Query Formatting
by tcf03 (Deacon) on Dec 06, 2007 at 10:17 UTC |