Ich möchte, dass ein Benutzer sein Passwort über eine Seite aktualisieren kann. Das Passwort ist (wie kaum anders zu erwarten) mit MySQL gespeichert. Indiziert werden die Benutzer über eindeutige id-nummern. Das php-script kennt aber nur Domain und Benutzername. Es muss also zunächst die id-nummer festgestellt werden. Und da fängt das Problem an.
Da man keine Tabellen updaten kann, die man gleichzeitig abfragt, habe ich das mit einer temporary table gelöst.
Kann man das so lassen, oder habe ich etwas vergessen, bzw. kann man das vielleicht schöner machen?
Da man keine Tabellen updaten kann, die man gleichzeitig abfragt, habe ich das mit einer temporary table gelöst.
Code:
CREATE TEMPORARY TABLE userID (SELECT `id` FROM `users` WHERE `domain_id` = "domain1.de" AND `user` = "user1" AND `password` = MD5( 'password-old' ));
UPDATE `database`.`users` SET `password` = MD5( 'passwort-new' ) WHERE `users`.`id` =(SELECT `id` FROM userID) LIMIT 1 ;
Kann man das so lassen, oder habe ich etwas vergessen, bzw. kann man das vielleicht schöner machen?