在PHP中更新查询问题

时间:2009-10-11 18:26:54

标签: php

$id=mysql_real_escape_string($levelid);
        $l=mysql_real_escape_string($level);
        $levDes=mysql_real_escape_string($leveldescription );
        $sql="UPDATE `levels` SET level='$l',leveldescription='$levDes' WHERE id='$id' LIMIT 1";
        $result=mysql_query($sql);
        if(!$result){throw new Exception(mysql_error());}
        $effectedRows=mysql_affected_rows();
        if(!$effectedRows){
            $sql="SELECT * FROM `levels` WHERE level='$l' AND id='$id' LIMIT 1";
            $result=mysql_query($sql);
            if(!$result){throw new Exception(mysql_error());}
            if(mysql_num_rows($result)==0){
                throw new Exception("Could not find Level's record in database to update.");
            }else{//no changes to the row 
                return "Level successfully updated in database although no changes were detected.";
            }//else
        }//if
        return "Level successfully updated in database.";
  1. 当我尝试更新时,级别会更新,但不会更新级别。
  2. 此级别也是唯一的,但是当我输入重复值时它不会引发错误..虽然数据库没有受到影响。

1 个答案:

答案 0 :(得分:1)

您的代码似乎没问题,您是否在查询之前检查过$ levDes是否有某些值。 回显查询或$ levDes。