我只有一个文本字段,用户可以在其中输入用户名或电子邮件地址以重置密码。PHP PDO - 返回结果,当它不应该?
首先这里是代码:(我只包含我知道问题所在的代码)。
try {
// connect to database
$dbh = sql_con();
// prepare query
$stmt = $dbh->prepare("
SELECT COUNT(*)
FROM
users
WHERE
user_login = :username
OR
user_email = :email
");
// execute query
$stmt->execute(array(':username' => $username_email, ':email' => $username_email));
if ($stmt->fetchAll() > 0) {
// something was found
// just echoing at the moment until i figure out what i am doing wrong
echo 'i found something';
exit;
} else {
// nothing found
echo 'i found nothing';
exit;
}
}
catch (PDOException $e) {
ExceptionErrorHandler($e);
require_once($footer_inc);
exit;
}
不知道我做错了,可能是一些很无聊的,但是当我输入用户名或邮箱地址,我知道是不是在数据库中仍回声出我发现了一些。
请问有人能告诉我我做错了吗?
我打算用rowCount
而是由PHP手册中的建议也指出:
PDOStatement对象:: rowCount时()返回受上一DELETE,INSERT,或通过执行UPDATE语句的行数相应的PDOStatement对象。 如果由关联的PDOStatement执行的最后一条SQL语句是SELECT 语句,则某些数据库可能会返回该语句返回的行数。
但是,这种行为不能保证所有的数据库,不应该依赖于便携式应用程序。
所以基本上,PHP手册说我应该做一个Count(*)
之前执行我真正的查询然后处理结果。
谢谢你...我改变了代码,你上面显示的和改变的SQL查询,它现在的作品。谢谢,phplover – PHPLOVER 2012-04-17 16:52:06