Home > Archive > PERL Modules > March 2008 > DBI does not do what I expect...
You are viewing an archived Text-only version of the thread.
To view this thread in it's original format and/or if you want to reply to
this thread please [click here]
| Author |
DBI does not do what I expect...
|
|
| Mark Jaffe 2008-03-12, 4:07 am |
| Hi,
I am working with a CGI to inspect a database, and I want to include a
count of records in each table in the display. I have two screens
available in the UI: one to list the tables in the d/b, and the other to
show the records in each table. I want to provide a preview of how big
each table is in the table listing, so the code preparing the table list
is doing this:
my $ary_ref = $dbh->selectcol_arrayref ( "SHOW TABLES FROM $db_name" );
# Construct a bullet list using the ul() and li functions. Each item
# is a hyperlink that re-invokes the script to display a particular
table.
my @item;
foreach my $tbl_name (@{$ary_ref}) {
my $url = sprintf ("%s?tbl_name=%s", url(), escape($tbl_name));
my $link = a ({-href => $url}, escapeHTML($tbl_name));
my $sth = $dbh->prepare ( qq (
SELECT COUNT(*) FROM $tbl_name ) );
my $rv = $sth->execute();
my $rows = $sth->rows;
push (@item, li ($link . " $rows in table" ) );
}
print ul (@item);
But when I execute the SQL, I only get "1" returned for each "$rows",
rather than what I expect, the number of rows.
Why is this not working for me?
Thanks,
Mark
| |
| Frank Seitz 2008-03-12, 4:07 am |
| Mark Jaffe wrote:
>
> But when I execute the SQL, I only get "1" returned for each "$rows",
> rather than what I expect, the number of rows.
>
> Why is this not working for me?
"SELECT COUNT(*) ..." returns one row, which is the number
of counted rows.
Frank
--
Dipl.-Inform. Frank Seitz; http://www.fseitz.de/
Anwendungen für Ihr Internet und Intranet
Tel: 04103/180301; Fax: -02; Industriestr. 31, 22880 Wedel
| |
|
| On Mar 12, 3:48=A0am, Frank Seitz <devnull4...@web.de> wrote:
> Mark Jaffe wrote:
>
>
>
> "SELECT COUNT(*) ..." returns one row, which is the number
> of counted rows.
>
> Frank
> --
> Dipl.-Inform. Frank Seitz;http://www.fseitz.de/
> Anwendungen f=FCr Ihr Internet und Intranet
> Tel: 04103/180301; Fax: -02; Industriestr. 31, 22880 Wedel
Exactly. So, not to put too fine a point on it what Mark wanted to do
was something like:
"SELECT COUNT(*) Cnt..."
=2E..
my $srcHref =3D $sth->fetchrow_hashref();
print $srcHref->{Cnt};
# QED
|
|
|
|
|