• Willkommen im Linux Club - dem deutschsprachigen Supportforum für GNU/Linux. Registriere dich kostenlos, um alle Inhalte zu sehen und Fragen zu stellen.

temporary table in MySQL

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.

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?
 
Ist ja schon etwas alt das Thema, aber warum soll das nicht gehen:

Code:
UPDATE `database`.`users` SET `password` = MD5( 'passwort-new' ) 
WHERE `domain_id` = "domain1.de" 
  AND `user` = "user1" 
  AND `password` = MD5( 'password-old' );
 
Das Problem hierbei war, dass das eingesetzte Script mehrere Befehle nicht akzeptiert hatte.

Habe das Problem dann anderweitig gelöst.
 
Oben