my $data = qq(SELECT * FROM admin WHERE username = ? AND password = ? +); my $sth = $dbh->prepare($data); $sth->execute($username, $password) or die $dbh->errstr;
Also the use of the rows-method is not recommended in this case and may lead to subtle and difficult to trace errors. The DBI-docs say:
Generally, you can only rely on a row count after a non-SELECT execute (for some specific operations like UPDATE and DELETE), or after fetching all the rows of a SELECT statement. For SELECT statements, it is generally not possible to know how many rows will be returned except by fetching them all. Some drivers will return the number of rows the application has fetched so far, but others may return -1 until all rows have been fetched. So use of the rows method or $DBI::rows with SELECT statements is not recommended. One alternative method to get a row count for a SELECT is to execute a ``SELECT COUNT(*) FROM ...'' SQL statement with the same ``...'' as your query and then fetch the row count from that.
CountZero
"If you have four groups working on a compiler, you'll get a 4-pass compiler." - Conway's Law
In reply to Re: faulty small cgi/mysql login
by CountZero
in thread faulty small cgi/mysql login
by Anonymous Monk
| For: | Use: | ||
| & | & | ||
| < | < | ||
| > | > | ||
| [ | [ | ||
| ] | ] |