in reply to
Perl DBI - returning a single value
Having written dozens of Perl DBI based scripts/apps/CGI/whatever over the years I'm pretty set in my ways of approaching things like this. So let me show you my method and see if it helps you.
# Boiler-plate-ish database pattern
my $dbh = DBI->connect("DBI:Pg:dbname=mydatabase",'','')
or die $DBD::errstr;
my $sth = $dbh->prepare(
SELECT Count(*) as x from e_annotation_090812.annotation A WHERE A.use
+r IN (SELECT T.Line FROM europhenome_annotation_090812.Temp_table T)
+AND entity_name LIKE '%' AND evidence_code NOT LIKE ? AND A.centre LI
) ) or die $dbh->errstr;
# Handwaving $ev_code and $pattern2
$sth->execute ("%" . $ev_code,"%" . $pattern2);
my ($count) = $sth->fetchrow_array();
Important elements of that code to consider.
- Use placeholders... you'll be glad you did. DBI takes care of making sure the correct quoting is in place. Prepending or appending the wildcard character works well.
- The prepare/execute sequence will save you some grief. Especially if you trap errors as I've shown in my example.
Hope this helps...
Peter L. Berghold -- Unix Professional
Peter -at- Berghold -dot- Net; AOL IM redcowdawg Yahoo IM: blue_cowdawg