1つのクエリを除いて、自分のWebサイトをmysqlからmysqliプリペアドステートメントに変換しました。私が理解できないクエリは次のとおりです。
$sql = "SELECT customerID FROM customer WHERE customerEmail = '$loginEmailAddress' AND customerPassword = PASSWORD('$loginPassword');";
$result = mysqli_query($mysqli, $sql);
これは正常に機能します。mysqliプリペアドステートメントを作成しようとすると、問題はmysqlPASSWORD関数です。これを変換することさえ可能ですか?
私は次のようなことを試しました:
$loginPassword = PASSWORD($loginPassword);
$stmt = $mysqli -> prepare("SELECT customerID from customer WHERE customerEmail = ? AND customerPassword = ? ");
$stmt -> bind_param("ss", $loginEmailAddress,$loginPassword);
$stmt -> execute();
$stmt->store_result();
$stmt -> bind_result($customerID);
$stmt -> close();
そしてもちろん成功しません。私も次のようなことを試しました:
$loginPassword = '" . PASSWORD('$loginPassword') . "';
私はphpassの使用に取り組んでいますが、それまでの間、既存の顧客がログインして新しいハッシュに移動できるようになるまで、パスワードを使用し続ける必要があります。