• 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

K4m1K4tz3

Advanced Hacker
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?
 

Fex

Member
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' );
 
OP
K

K4m1K4tz3

Advanced Hacker
Das Problem hierbei war, dass das eingesetzte Script mehrere Befehle nicht akzeptiert hatte.

Habe das Problem dann anderweitig gelöst.
 
Oben