Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/mysql/61.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/sql/83.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
MySQL中更新的值错误_Mysql_Sql_Database_Sql Update_Row - Fatal编程技术网

MySQL中更新的值错误

MySQL中更新的值错误,mysql,sql,database,sql-update,row,Mysql,Sql,Database,Sql Update,Row,$salt 2我正在使用登录系统,更新我的salt表时遇到问题。我不是sql方面的专家,但我知道自己的方法 我要更新的查询是: UPDATE hashTable SET `salt1` = 'salt1here' AND `salt2` = 'salt2here' WHERE `userID` = userID userID是一个整数值,所以我不需要引用它 当我更新该表时,salt1被设置为0的值。我正在使用php创建sql查询,如下所示: UPDATE hashTable SET `salt

$salt 2我正在使用登录系统,更新我的salt表时遇到问题。我不是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
UPDATE hashTable SET `salt1` = '9d6db1743e5e0cf1bb0e8cd799c0640231a10ec21e1612a6ed46e8ea16862835' AND `salt2` = '0824b2aac446ccfbd719645f84b13443cbcf59ee4e6dabace8c421ff6a8c6688' WHERE `userID` = 1374770432
旁注:我知道sql注入,我有保护措施 在我的代码中反对这一点。在这种情况下,我不需要这个,因为 脚本正在生成salt值,用户id是一个值 由函数返回。任何我有用户输入的地方 斜线和有防止注射的方法

对我来说,我的sql查询似乎是正确的,我知道我的值是正确的,因为动态创建的查询是这样的:

UPDATE hashTable SET `salt1` = '$salt1' AND `$salt2` = 'salt2here' WHERE `userID` = $userID
UPDATE hashTable SET `salt1` = '9d6db1743e5e0cf1bb0e8cd799c0640231a10ec21e1612a6ed46e8ea16862835' AND `salt2` = '0824b2aac446ccfbd719645f84b13443cbcf59ee4e6dabace8c421ff6a8c6688' WHERE `userID` = 1374770432
我甚至直接将其输入到phpMyAdmin,它显示
0行受影响
,但仍然将我的
salt1
行更改为
0


我有点困惑,因为看起来我做的每件事都是正确的,但显然我不是

UPDATE hashTable 
SET `salt1` = '$salt1' AND `$salt2` = 'salt2here' 
WHERE `userID` = $userID
…应该是

UPDATE hashTable 
SET `salt1` = '$salt1', `$salt2` = 'salt2here' 
WHERE `userID` = $userID

当前,您正在
$salt1
$salt2='salt2here'
之间执行
操作(在本例中,它似乎返回0),并将该操作存储在
salt1
中,您的SQL查询是错误的

UPDATE hashTable 
SET `salt1` = '$salt1' AND `$salt2` = 'salt2here' 
WHERE `userID` = $userID
…应该是

UPDATE hashTable 
SET `salt1` = '$salt1', `$salt2` = 'salt2here' 
WHERE `userID` = $userID


目前,您正在执行
$salt1
$salt2='salt2here'
之间的
操作(在本例中似乎返回0),并将其存储在
salt1

中,非常感谢!我真不敢相信我没听懂@EvanStoddard总是比坐在那里写代码的人更容易发现错误:)它不是设置了吗,…
而不是
。它似乎仍在使用此查询执行相同的操作。我知道
userID
是匹配的,当我只更新一个值时它就工作了,但它不喜欢同时更新两个值。非常感谢!我真不敢相信我没听懂@EvanStoddard总是比坐在那里写代码的人更容易发现错误:)它不是设置了吗,…
而不是
。它似乎仍在使用此查询执行相同的操作。我知道
userID
是匹配的,当我只更新一个值,但它不喜欢同时更新这两个值时,它会工作。请不要使用字符串插值插入数据,而不使用。请重新阅读我的文章。我已经采取了我在代码示例中没有包含的预防措施。如果它不是显而易见的,那么你就是这么做的,我的意思是“代码> MySQL LealReleSeEx字符串正好在你的查询的中间,那么假设它是不安全的就不安全了。如果您错过了其中一个,您的整个应用程序都可能被销毁。这就是为什么与这种危险且容易出错的字符串串联组合方式相比,强烈建议使用参数化查询的原因。当你说你使用“带斜杠”时,我非常担心,因为这对SQL注入保护没有任何作用。在我的示例中,没有必要表明我在使用
mysql\u real\u escape\u string
(顺便说一句,应该是
mysqli\u real\u escape\u string
)。另外,我已经解释过,我正在采取预防措施,我不需要对这些变量使用转义字符串函数,因为它们是私有的,在私有函数中,而且它们没有被用户输入填充,也没有被用户填充的地方。我只有几个处理用户输入的函数,我可以向您保证我正在保护输入。谢谢,这非常有用!请不要在没有使用字符串插值的情况下插入数据。请重新阅读我的帖子。我已经采取了我在代码示例中没有包含的预防措施。如果它不是显而易见的,那么你就是这么做的,我的意思是“代码> MySQL LealReleSeEx字符串正好在你的查询的中间,那么假设它是不安全的就不安全了。如果您错过了其中一个,您的整个应用程序都可能被销毁。这就是为什么与这种危险且容易出错的字符串串联组合方式相比,强烈建议使用参数化查询的原因。当你说你使用“带斜杠”时,我非常担心,因为这对SQL注入保护没有任何作用。在我的示例中,没有必要表明我在使用
mysql\u real\u escape\u string
(顺便说一句,应该是
mysqli\u real\u escape\u string
)。另外,我已经解释过,我正在采取预防措施,我不需要对这些变量使用转义字符串函数,因为它们是私有的,在私有函数中,而且它们没有被用户输入填充,也没有被用户填充的地方。我只有几个处理用户输入的函数,我可以向您保证我正在保护输入。谢谢,这非常有用!