$ salt2我正在使用登录系统,并且在更新我的盐表时遇到问题。我不是sql的专家,但我知道我的方式。
我要更新的查询是:
UPDATE hashTable SET `salt1` = 'salt1here' AND `salt2` = 'salt2here' WHERE `userID` = userID
userID
是一个整数值,所以我不需要引用它。
当我更新该表时,salt1
设置为0
的值。我使用php来创建我的SQL查询,看起来像:
UPDATE hashTable SET `salt1` = '$salt1' AND `$salt2` = 'salt2here' WHERE `userID` = $userID
SIDE注意:我知道sql注入,我确实有保护 在我的代码中反对。在这种情况下,我不需要这个,因为 salt值由脚本生成,用户id是一个值 由函数返回。我有任何用户输入的地方我剥离 斜线,并有办法防止注射。
对我来说,我的SQL查询似乎是正确的,我知道我的值是正确的,因为这是动态创建的查询的样子:
UPDATE hashTable SET `salt1` = '9d6db1743e5e0cf1bb0e8cd799c0640231a10ec21e1612a6ed46e8ea16862835' AND `salt2` = '0824b2aac446ccfbd719645f84b13443cbcf59ee4e6dabace8c421ff6a8c6688' WHERE `userID` = 1374770432
我甚至直接将其输入phpMyAdmin并显示0 rows affected
,但仍将salt1
行更改为0
。
我有点困惑,因为看起来我正在做的一切正确,但显然我不是。
答案 0 :(得分:3)
您的SQL查询错误;
UPDATE hashTable
SET `salt1` = '$salt1' AND `$salt2` = 'salt2here'
WHERE `userID` = $userID
......应该......
UPDATE hashTable
SET `salt1` = '$salt1', `$salt2` = 'salt2here'
WHERE `userID` = $userID
目前,您正在AND
和$salt1
之间进行$salt2 = 'salt2here'
操作(在这种情况下似乎会返回0)并将其存储在salt1
中。< / p>