在MySQL中更新了错误的值

时间:2013-07-25 17:08:33

标签: mysql sql database sql-update row

$ 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

我有点困惑,因为看起来我正在做的一切正确,但显然我不是。

1 个答案:

答案 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>