我想做一個例程,首先檢查用戶密碼,如果它是正確的,它應該返回不同表中的某些值或更改一行中的某些值。MYSQL:使用if語句的過程
這甚至可能沒有在PHP中處理兩個查詢?首先調用密碼,檢查它的正確性,然後允許用戶更改名稱。
這裏是通過電子郵件和密碼獲取用戶行的示例。
DELIMITER $$
CREATE DEFINER=`root`@`localhost` PROCEDURE `get_user_info`(
IN in_Email VARCHAR(45),
IN in_Pass VARCHAR(45)
)
BEGIN
SELECT * FROM User WHERE Email = in_Email AND Pass = in_Pass;
END
這是什麼Ive得到了迄今:
DELIMITER $$
CREATE DEFINER=`root`@`localhost` PROCEDURE `change_pass`(
in_Email VARCHAR(45),
in_PassOld VARCHAR(45),
in_PassNew VARCHAR(45)
)
BEGIN
SET @PassOld = (SELECT Pass From User WHERE Email = in_Email);
IF(@PassOld = in_PassOld) THEN
UPDATE User SET Pass = in_PassNew WHERE Email = in_Email;
END IF;
ENDND IF;
END
感謝所有幫助!
永遠不要在明確存儲密碼在數據庫中。使用鹽漬散列代替,請參閱這裏爲什麼:http://stackoverflow.com/questions/2283937/how-should-i-ethically-approach-user-password-storage-for-later-plaintext-retriev和這裏爲如何:http://stackoverflow.com/questions/3273293/salting-my-hashes-with-php-and-mysql – Johan