在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. When i try to update, the level gets updated but not the leveldescription.
  2. Also level is unique, but it does not throw error when i enter duplicate value.. though the DB is not getting affected.
  $ id = mysql_real_escape_string($ levelid); 
 $ l = mysql_real_escape_string($ level); \  n $ levDes = mysql_real_escape_string($ leveldescription); 
 $ sql =“UPDATE`level` SET level ='$ l',leveldescription ='$ levDes'WHERE id ='$ id'LIMIT 1”; 
 $ result =  mysql_query($ sql); 
 if(!$ result){throw new Exception(mysql_error());} 
 $ affectedRows = mysql_affected_rows(); 
 if(!$ affectedRows){
 $ sql =“SELECT  * FROM`level` 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(“无法在数据库中找到Level的记录进行更新。”); 
} else {//没有对行的更改\  n返回“已在数据库中成功更新级别,但未检测到任何更改。”; 
} // else 
} //如果
返回“Lev  el已在数据库中成功更新。“; 
  code>  pre> 
 
 
  1. 当我尝试更新时,级别会更新,但不会更新级别。 li>
  2. 水平也是唯一的,但是当我输入重复值时它不会引发错误..虽然数据库没有受到影响。 li> ol> div >

Your code seem to be fine, Have u checked whether $levDes have some values or not before query. echo the query or $levDes.