Wie um zu überprüfen, ob ein UPDATE mysqli Abfrage wird korrekt ausgeführt?
Hier ist mein Fall:
$sql = 'UPDATE user SET password = ? WHERE username = ? AND password = ?';
if($stmt->prepare($sql)) {
$stmt->bind_param('sss', $newPass, $_SESSION['username'], $oldPass);
$stmt->execute();
}
Nun, wie kann ich sehen, wenn die UPDATE-Abfrage wird erfolgreich ausgeführt? Und genauer gesagt, wie kann ich sehen, ob Sie das alte Passwort und Benutzername sind korrekt, so dass ich speichern Sie das neue Passwort?
Ich habe versucht, dies zu tun:
$res = $stmt->execute();
echo 'Result: '.$res;
Aber ich bekomme immer:
Result: 1
selbst wenn das alte Passwort ist nicht korrekt.
Du musst angemeldet sein, um einen Kommentar abzugeben.
Einer Abfrage, die updates werden keine Zeilen ist NICHT ein Fehler. Es ist einfach eine erfolgreiche Abfrage, die nicht etwas ändern. Um zu sehen, ob ein update tatsächlich etwas ändert, müssen Sie mysqli_affected_rows()
UPDATE
Abfragen.Müssen Sie die
affected_rows
- Funktion der MySQL-Erweiterung, die Sie verwenden. Dies gibt 0 zurück, wenn die Abfrage fehlgeschlagen, da keine Zeilen, die aufeinander abgestimmt ist, -1, wenn ein Fehler aufgetreten ist, oder eine positive Zahl, die die Anzahl der Zeilen, die geändert wurden.Versuchen
mysqli_affected_rows()
um die Anzahl der betroffenen Zeilen.Versuchen.