in reply to Re: Using If statement to set DBI prepare
in thread Using If statement to set DBI prepare

I am having a problem now where the @rows eq "0" dows not appear to be working. @rows has a value and I have confirmed that it is correct. But the statement to see if the value is eq to 0 seems to be bypassed.
Here is the code :-
my $cth = $dbh->prepare('SELECT COUNT(*) FROM SuppressList WHERE A +ctive = ? AND ServerName = ? AND Application = ? and Instance = ?') o +r die "Couldn't Prepare statement: " . $dbh->errstr; $cth->execute($Active,$Server_Name,$App,$Inst); @rows = $cth->fetchrow_array(); cawto "Rows: @rows"; my ($sql, @placeholders); if (@rows ge "1") { $sql = qq{SELECT * FROM SuppressList WHERE Active = ? AND Serv +erName = ? AND Application = ? AND Instance = ?}; @placeholders = ($Active,$Server_Name,$App,$Inst); cawto "ServerName/App/Inst Execute Complete"; } else { $sql = qq{SELECT * FROM SuppressList WHERE Active = ? AND Serv +erName = ? AND Application = ?}; @placeholders = ($Active,$Server_Name,$App); cawto "ServerName/App Execute Complete"; } my $sth = $dbh->prepare($sql); $sth->execute(@placeholders);

I am lost... it appears to work then it actually doesn't. Any tips ?
Cheers
Danny

Update: Sorry forgot to add that I changed to ge from eq to see if that worked.. It doesn't. Also running this on Win32 platform.

Replies are listed 'Best First'.
Re^3: Using If statement to set DBI prepare
by Fang (Pilgrim) on Jul 28, 2005 at 13:47 UTC

    Start by using the correct operator: @rows == 1. The eq operator worked when comparing to 0, but it could very well be an exception.