在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.";
- When i try to update, the level gets updated but not the leveldescription.
- 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>
- 当我尝试更新时,级别会更新,但不会更新级别。 li>
- 水平也是唯一的,但是当我输入重复值时它不会引发错误..虽然数据库没有受到影响。 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.