Как проверить правильность выполнения запроса UPDATE mysqli?

Вот мой случай:

$sql = 'UPDATE user SET password = ? WHERE username = ? AND password = ?'; if($stmt->prepare($sql)) { $stmt->bind_param('sss', $newPass, $_SESSION['username'], $oldPass); $stmt->execute(); } 

Теперь, как я могу увидеть, успешно ли выполняется запрос UPDATE? И более точно, как я могу проверить, правильно ли старый пароль и имя пользователя, чтобы я мог сохранить новый пароль? Я пробовал это:

 $res = $stmt->execute(); echo 'Result: '.$res; 

Но я всегда получаю:

 Result: 1 

даже если старый пароль неверен.

Запрос, который не обновляет строки, НЕ является условием ошибки. Это просто успешный запрос, который ничего не менял. Чтобы убедиться, что обновление действительно что-то изменило, вы должны использовать mysqli_affected_rows ()

Вам нужно использовать функцию affected_rows используемого расширения MySQL. Это приведет к возврату 0, если запрос завершился неудачно, потому что никакие строки не совпали, -1, если произошла ошибка, или положительное число, показывающее количество строк, которые были изменены.

Попробуйте использовать mysqli_affected_rows() чтобы получить количество затронутых строк.

  mysqli_query($link, "UPDATE Language SET Status=1 WHERE Percentage > 50"); printf("Affected rows (UPDATE): %d\n", mysqli_affected_rows($link)); 

Попробуй это.