Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/vba/17.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
SQL在不应为true时计算结果为true_Sql - Fatal编程技术网

SQL在不应为true时计算结果为true

SQL在不应为true时计算结果为true,sql,Sql,我有这个SQL代码 $passwordQuery = mysql_query("UPDATE `Medarbejder` SET `password` = '$password' WHERE `login` = '$login' AND `password` = '$oldPassword'")or die(mysql_error()); if($passwordQuery){ 不管$oldPassword是否等于password,它的计算结果都是true,这很烦人,我

我有这个SQL代码

$passwordQuery = mysql_query("UPDATE `Medarbejder` SET `password` = '$password' WHERE `login` = '$login' AND `password` = '$oldPassword'")or die(mysql_error());
            if($passwordQuery){

不管$oldPassword是否等于
password
,它的计算结果都是true,这很烦人,我也不知道为什么。

我可能错了,但即使没有找到记录,您的更新也不会失败,他也不会更新任何内容!:-)

我可能错了,但即使没有找到记录,您的更新也不会失败,他只会什么也不更新!:-)

我认为无论是否更新行,
mysql\u query
都将返回TRUE。根据手册所述,它只在出现错误时返回FALSE

对于其他类型的SQL语句,请执行INSERT、UPDATE、DELETE、DROP等操作, mysql_query()成功时返回TRUE,错误时返回FALSE


我认为您需要的是检查更新计数——除了错误检查之外,我认为
mysql\u query
将返回TRUE,无论它是否更新行。根据手册所述,它只在出现错误时返回FALSE

对于其他类型的SQL语句,请执行INSERT、UPDATE、DELETE、DROP等操作, mysql_query()成功时返回TRUE,错误时返回FALSE


我认为您需要检查更新计数——除了错误检查之外,

将在更新后返回受影响的行数。

将在更新后返回受影响的行数。

如果您想要检查受影响的行数,您可以在PHP代码中使用
mysql\u infected\u rows


如果要检查受影响的行数,可以在PHP代码中使用
mysql\u infected\u rows

像这样做

$passwordQuery = mysql_query("UPDATE `Medarbejder` SET `password` = '$password' WHERE `login` = '$login' AND `password` = '$oldPassword'")or die(mysql_error());
        if(mysql_affected_rows()==0){
        //alternative to false return of query
        }
        else if(mysql_affected_rows()>0){
        //alternative to true return of query
        }
像这样做

$passwordQuery = mysql_query("UPDATE `Medarbejder` SET `password` = '$password' WHERE `login` = '$login' AND `password` = '$oldPassword'")or die(mysql_error());
        if(mysql_affected_rows()==0){
        //alternative to false return of query
        }
        else if(mysql_affected_rows()>0){
        //alternative to true return of query
        }
哦,好的。。derp,谢谢:)我会很快试用:)你知道一种方法来检查它是否真的更新了吗?哦,好的。。derp,谢谢:)会很快试用:)你们知道一种方法来检查它是否真的更新了吗?好的,谢谢:)你们知道一种方法来检查它是否真的更新了吗?:)好的,谢谢:)你们知道怎么检查它是否更新了什么吗?:)
mysql\u infected\u rows()
用于返回由于当前函数或处理块中最近处理的查询而更改的行数。如果密码和/或用户名不相等,则此函数将返回0,否则任何大于0的数字。
mysql\u infected\u rows()
用于返回由于当前函数或处理块中最近处理的查询而更改的行数。如果密码和/或用户名不相等,则此函数将返回0或任何大于0的数字。