0

我收到这个 mysql 错误:

1064 - 您的 SQL 语法有错误;检查与您的 MySQL 服务器版本相对应的手册,以在第 1 行的“@password)”附近使用正确的语法

这是针对下面的sql:

Update Teacher 
SET TeacherSalt=@salt, TeacherPassword=SHA1(TeacherSalt @password)

我需要改变什么才能让这个 sql 工作?

更新:

需要帮助加盐密码。如果 TeacherPassword 和 TeacherSalt 列如下所示:

TeacherPassword     TeacherSalt

cricket01
sachin01
priggy02

然后在我做这个声明之后:

Update Teacher 
SET    TeacherSalt = @salt, 
       TeacherPassword = SHA1(CONCAT(@password,@salt))

然后 TeacherPassword 和 TeacherSalt 列都提供空白行。如何成功加盐密码?

4

4 回答 4

2

不是这样吗?(删除中的TeacherSaltSHA1

Update Teacher 
SET    TeacherSalt = @salt, 
       TeacherPassword = SHA1(CONCAT(@password,@salt))

SQLFiddle 示例

于 2012-08-08T12:03:50.213 回答
0

我想你想粘盐和密码。例如:

UPDATE Teacher 
SET TeacherSalt = @salt, TeacherPassword = SHA1(CONCAT(@salt, @password))
于 2012-08-08T12:14:47.837 回答
0

我认为问题是您需要连接字符串。

Update Teacher  
SET TeacherSalt=@salt, TeacherPassword=SHA1(@salt + @password)
于 2012-08-08T12:04:40.493 回答
0

看起来您的语法已关闭,您TeacherSalt在该Password字段中有一个额外的:

Update Teacher 
SET TeacherSalt=@salt, TeacherPassword=SHA1(@password)

根据您的评论,听起来您想要这个:

Update Teacher 
SET TeacherSalt=@salt, TeacherPassword=SHA1(CONCAT(@password,@salt))
于 2012-08-08T12:04:01.227 回答