Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/mysql/56.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
PHP MySQL更新查询不工作(未返回行)_Php_Mysql - Fatal编程技术网

PHP MySQL更新查询不工作(未返回行)

PHP MySQL更新查询不工作(未返回行),php,mysql,Php,Mysql,在PHP中使用MySQL函数的UPDATE查询时遇到问题。我没有犯任何语法错误,但它只是不返回任何行(我回显结果行,它总是显示0)。我的代码如下: mysql_query("UPDATE wecode.users SET activate = 1 WHERE username = '$username' AND password = '$password' AND email = '$email'", $connection) or die ("Troubles activating the a

在PHP中使用MySQL函数的
UPDATE
查询时遇到问题。我没有犯任何语法错误,但它只是不返回任何行(我回显结果行,它总是显示0)。我的代码如下:

mysql_query("UPDATE wecode.users SET activate = 1 WHERE username = '$username' AND password = '$password' AND email = '$email'", $connection)
or die ("Troubles activating the account ".mysql_error());
return mysql_affected_rows();

我尝试将相同的查询(使用实际列的值)放在我的工作台中,结果很好(至少查询返回1个结果行)。那么,知道问题出在哪里了吗?

不要使用
mysql\u受影响的行
来指示用户被此查询激活

如果用户不存在或用户已被激活(activate=1),它将返回0

:

使用UPDATE时,MySQL不会更新包含新值的列 与旧值相同。这就产生了这样一种可能性: mysql_infected_rows()实际上可能不等于行数 匹配,仅受 询问


如果这是一个新的应用程序,您不应该使用
mysql\u query
,并且必须使用所有值。请进行一些调试。首先将UPDATE语句分配给变量
$sql=“UPDATE…”然后回显它
回显$sql
。如果将列设置为其已有的值,则该值将计为受影响的0行。因此,请确保您正在更新尚未具有
activate=1
的行。您是对的。你和酒吧招待是对的。我试图用相同的值更新列值,因此函数mysql\u impact\u rows返回0。非常感谢你。谢谢大家的回答。