パスワードをリセットするためのユーザー名または電子メールアドレスをユーザーが入力できるテキストフィールドが1つだけあります。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