Код не замысловатый, смена пароля на новый по хешу с почты.
Проблема код проходит до конца выводя что $e = NULL при этом в БД нет никаких изменений, переменная
$Changed
которая как раз считает количество изменённых строк имеет значение 0.
try {
$this->Connect->beginTransaction(); // начало транзакции
$db = $this->Connect->prepare(" UPDATE `users` SET `pwd`=:pwd, `mailh`='' WHERE `mailh`=:hash ");
$db->bindParam(":pwd",$new_password);
$db->bindParam(":hash",$hash);
$db->execute();
$Changed = $db->rowCount();
$this->Connect->commit(); // конец транзакции
} catch (\PDOException $e) {
$this->Connect->rollBack(); // откат транзакции
}
echo $e; // NULL
echo $Changed; // 0