PHP set Hash 与 Swift app 的 Checked hash 不同

PHP set Hash isn't the same as Checked hash with Swift app

我正在尝试使用 PHP 为密码设置散列,我设置密码的代码是:

$user = $_POST['email'];
$pass = $_POST['password'];
$hashed = hash("md5", $pass);
$sql = "UPDATE Users set password=" . $hashed . " where email=" . email;

这会将密码设置为散列版本,如我所愿。 但是当我尝试检查时,使用:

$user = $_POST['email'];
$pass = $_POST['password'];
$hashed = hash("md5", $pass);
$sql = "SELECT * FROM Users where email=" . $user . " and password=" . $hashed;

使用完全相同的输入,代码没有 return 任何内容。有谁知道为什么?我不确定它是否相关,但我正在使用 Swift 应用程序进行发布。

$user = $_POST['email'];
$pass = $_POST['password'];
$hashed = hash("md5", $pass);
$sql = "UPDATE Users set password='" . $hashed . "' where email='" . email . "'";


$user = $_POST['email'];
$pass = $_POST['password'];
$hashed = hash("md5", $pass);
$sql = "SELECT * FROM Users where email='" . $user . "' and password='" . $hashed . ''';

两个 SQL 语句都缺少两个字符串周围的引号。我没有看到实际执行 $sql 语句的 mysqli_* 或 PDO 代码。