aravind chandu wrote:
I am using pqxx API for postgresql.The following is the
part of my code.The problem is in the query I am selecting the number
of rows from the table since there is only one user name and password
row it should return 1 and if there is no match then it should return
0.But here Even though I give wrong username or password its getting
authenticated.please help me,what should I put in the "if ()"
statement inorder to solve this issue .
result R(T.exec("select count(*) from dbtable where
username="+username+" and password="+password+""));
if (R.empty())
{
throw logic_error("No tables found");
*shm = '5';
}
else
{
cout<<"Authenticated";
*shm='0';
}
You don't want to test if the result is empty - you want to test if the
value returned is 0.
If you select the username and group by it, then you could test for the
empty result.
# select count(*) from users where username = 'hfkhsdf';
count
-------
0
(1 row)
# select username, count(*) from users where username = 'hfkhsdf' group
by 1;
username | count
----------+-------
(0 rows)
klint.
--
Klint Gore
Database Manager
Sheep CRC
A.G.B.U.
University of New England
Armidale NSW 2350
Ph: 02 6773 3789
Fax: 02 6773 3266
EMail: kgore4@xxxxxxxxxx
--
Sent via pgsql-general mailing list (pgsql-general@xxxxxxxxxxxxxx)
To make changes to your subscription:
http://www.postgresql.org/mailpref/pgsql-general