SQL在不应为true时计算结果为true
我有这个SQL代码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,这很烦人,我
$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的数字。