Try to use place holder, it probably will help, at least remove one possible gotcha.
SELECT * FROM users WHERE name = ? AND pass = ?
Use the following syntax:
@row_ary = $dbh->selectrow_array("SELECT * FROM users WHERE name = ? A +ND pass = ?", undef, @binding_values);
Use $dbh->err() to tell you the exact database error.
if you want to see whether there is a row satify certain condition, just say,
SELECT 1 FROM users WHERE name = ? AND pass = ? #replace * with 1
In your case, there is really no need to run the same query twice:
if($dbh->selectrow_array("SELECT * FROM users WHERE name = $uname_q +AND pass = $pword_q")){ ($userid) = $dbh->selectrow_array("SELECT userid FROM users WH +ERE name = $uname_q AND pass=$pword_q");
You said that after you comment out the first if and the else block, it complains about $userid. That is a good indication that your query probably failed, according to the document, an empty list will be retunred in that case.
In reply to Re: MySQL does not like me today...
by pg
in thread MySQL does not like me today...
by Spidy
| For: | Use: | ||
| & | & | ||
| < | < | ||
| > | > | ||
| [ | [ | ||
| ] | ] |