Moin!
Ich hab jetzt eine Table angelegt (id,name,email,login,pwd)
in der ich die user anlegen möchte:insert into tbl_users values(1,'Stephan','xy@df.com','stephan',password('test'));
Wenn du vernünftig programmieren würdest, würdest du diesen Insert so machen:
INSERT INTO tbl_users (id,name,email,login,pwd) VALUES (...deine daten..., password('test'))
Grund: Wenn du im Insert die Reihenfolge, in der du die Spalten befüllen willst, angibst, weiß die Datenbank, wie sie was einzusortieren hat. Wenn aus irgendeinem Grund deine Spaltenreihenfolge sich mal ändert (und sei es nur, weil du in der Mitte eine neue Spalte hinzufügst), dann funktioniert _mein_ Insert immer noch, während _dein_ Insert die Spalten vertauscht.
Ich habe es folgendermaßen versucht:
select name from tbl_users where login='stephan' and password=password('test');
Die Spalte mit dem Passwort heißt nicht password, sondern pwd. Jedenfalls, wenn deine Angabe oben stimmt.
Kommt nix zurück. Woran liegt das? Ich habe das selbe auch schon
mit der encrypt() funktion probiert ohne erfolg.
Hast du den MySQL-Fehler abgefangen und ausgegeben? Mach das lieber mal.
Ansonsten: Die Funktion password() von MySQL sollte man nicht selbst verwenden, sie ist für interne Zwecke vorgesehen. Mach lieber deine eigene Funktion auf. MD5 ist beispielsweise eine schöne Funktion, die du mit PHP ausführen kannst und die genau dasselbe leistet, wenn nicht sogar besseres.
- Sven Rautenberg
"Beim Stuff für's Web gibts kein Material, was sonst das Zeugs ist, aus dem die Sachen sind."
(fastix®, 13. Oktober 2003, 02:26 Uhr -> </archiv/2003/10/60137/#m338340>)