0

PHP の独自の関数を SQL クエリで ( mySQLPDOを使用して) 直接使用できますか? 例えば:

$query  = null;
$result = null;
$query  = $this->database_0->prepare("SELECT `id`, `salt` FROM `general_users` WHERE `username` = :username AND `password` = CONCAT(generatePassword(:password, `salt`)) LIMIT 1");
$query->bindValue(':username', $this->input->getValue('username'), PDO::PARAM_STR);
$query->bindValue(':password', $this->input->getValue('password'), PDO::PARAM_STR);
$query->execute();
$result = $query->fetch(PDO::FETCH_ASSOC);
$query->closeCursor();

"WHERE" ケースの 3 行目を見てください。

それが不可能な場合は、ユーザーが存在するかどうかを確認するためだけに 2 つのクエリを使用する必要があります。これは最適とは言えません。

助けてくれてありがとう、バーテック。

4

2 に答える 2

0

MySQL クエリで PHP 関数を使用することはできません。

単一のクエリでこれを行うことができます。のみを比較して、ユーザー情報 (パスワードを含む) を取得するだけusernameです。次に、PHP で、保存されているパスワードと計算したばかりのパスワードを比較します。これにより、「ユーザーは存在するが、パスワードが間違っている」「ユーザーが存在しない」という 2 つのケースを区別することさえできます。

于 2013-11-03T16:15:27.643 に答える