我已经写了我的sql更新过程,但出现错误

我已经写了我的sql更新过程,但出现错误

问题描述:

CREATE PROCEDURE sp_update_userdetails
( 
firstname VARCHAR(300),lastname VARCHAR(300),email VARCHAR(300),`password` VARCHAR(200),`phone no` VARCHAR(300),photo VARCHAR(200)
)
BEGIN
IF EXISTS(SELECT * FROM user_details WHERE email=`email`)
(
UPDATE user_details SET firstname=firstname,lastname=lastname,`password`=`password`,`phone no`=`phone no`,
photo=photo
WHERE user_details.`email`=`email`)
ELSE
INSERT INTO user_details(`firstname`,lastname,`email`,`password`,`phone no`,photo)
VALUES 
(
 `firstname`,lastname,`email`,`password`,`phone no`,photo
);
END;


拜托,有人可以给我个好主意吗?

错误为[Err] 1064-您的SQL语法有错误;检查与您的MySQL服务器版本相对应的手册,以在''(
附近使用正确的语法 UPDATE user_details SET firstname = firstname,lastname = lastname,`password == pas''在第7行


Please, can anybody give mesome ideas?

and the error is [Err] 1064 - You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near ''(
UPDATE user_details SET firstname=firstname,lastname=lastname,`password`=`pas'' at line 7

请使用此:


Please Use this :


CREATE PROCEDURE sp_update_userdetails
(
@firstname VARCHAR(300),@lastname VARCHAR(300),@email VARCHAR(300),@password VARCHAR(200),@phoneno VARCHAR(300),@photo VARCHAR(200)
)
as
BEGIN
IF EXISTS(SELECT * FROM user_details WHERE email=@email)

UPDATE user_details SET firstname=@firstname,lastname=@lastname,password=@password,phoneno=@phoneno,photo=@photo
WHERE user_details.email=@email

ELSE
INSERT INTO user_details(firstname,lastname,email,password,phoneno,photo)
VALUES
(
@firstname,@lastname,@email,@password,@phoneno,@photo
);
END