我有这个SQL代码
$passwordQuery = mysql_query("UPDATE `Medarbejder` SET `password` = '$password' WHERE `login` = '$login' AND `password` = '$oldPassword'")or die(mysql_error());
if($passwordQuery){
无论$ oldPassword是否等于password
,它的评估结果为真,这很烦人,我无法弄清楚原因。
答案 0 :(得分:2)
我认为mysql_query
无论是否更新行都会返回TRUE。根据手册所说,它只会在出错时返回FALSE
对于其他类型的SQL语句,INSERT,UPDATE,DELETE,DROP等, mysql_query()成功时返回TRUE,错误时返回FALSE。
我认为你想要的是检查更新计数 - 除了错误检查
答案 1 :(得分:1)
如果要检查受影响的行数,可以在PHP代码中使用mysql_affected_rows
。
答案 2 :(得分:0)
我可能错了,但即使没有找到记录,您的更新也不会失败,他只会更新! : - )
答案 3 :(得分:0)
mysql_affected_rows将在更新后返回受影响的行数。
答案 4 :(得分:0)
这样做
$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
}