0

他の人からの多くの推奨の後、mysql_ から PDO に切り替えることにしました。私は PDO を文字通り約 15 分前に見始めましたが、このコード行を PDO 形式に変換しようとして立ち往生しています。

function verify_user($username, $recover_password) {
        return (mysql_result(mysql_query("SELECT COUNT(`user_id`) FROM `users` WHERE `username` = '$username' AND `password_recovery` = '$recover_password'"), 0) == 1) ? true : false;
}

私はいくつかのチュートリアルを見てきましたが、うまくいく限り、このコードで実際のクエリを実行できます。

$verify_user = "SELECT COUNT(`user_id`) FROM `users` WHERE `username` = '$username' AND `password_recovery` = '$recover_password'";
    $result = $con->prepare($verify_user);
    $result->execute();

私が抱えている問題は、コード行の 2 番目の部分である mysql_result です。クエリが実行されたので、PDO を使用して true または false を返す方法がわかりません。助けていただければ幸いです。ありがとう!

更新しました:

$result = $con->prepare("SELECT COUNT(`user_id`) FROM `users` WHERE `username` = :username AND `password_recovery` = :recover_password");
$result->bindParam(':username', $username, PDO::PARAM_STR);
$result->bindParam(':password_recovery', $recover_password, PDO::PARAM_STR);
$result->execute();

あなたが提供したそのページを読むと、次のようになります。

$result = $con->prepare("SELECT COUNT(`user_id`) FROM `users` WHERE `username` = :username AND `password_recovery` = :recover_password");
$result->bindParam(':username', $username, PDO::PARAM_STR);
$result->bindParam(':password_recovery', $recover_password, PDO::PARAM_STR);
$result->execute();
return  ($con->fetch($result) == 1) ? true : false;

私はおそらく何マイルも離れていますが、あなたが私に与えてくれた助けに感謝しています:)私はさらにいくつかの検索を行います.

4

1 に答える 1