当我从表中删除一条记录时,表中有8列,如果输入的列超过8列,则必须显示没有删除任何内容。然而,我给出的每一个号码,我都得到了相同的回复"成功删除"。这是我的代码:
$query = "DELETE FROM `order` WHERE orderId = '$_POST[id]'" ;
$result = mysql_query($query);
if(! $result )
{
echo ("$_POST[id] not deleted !<a href='deleteorder.php'>Back</a>");
}
else
{
echo ("$_POST[id] deleted succesfully! <a href='deleteorder.php'>Back</a>");
}
$result
将是一个有效的结果,即使您的查询不会影响任何行。使用mysql_affected_rows()
检查是否删除了任何内容。
$result = mysql_query($query);
if( mysql_affected_rows() == 0 )
{
echo ("$_POST[id] not deleted !<a href='deleteorder.php'>Back</a>");
}
else
{
echo ("$_POST[id] deleted succesfully! <a href='deleteorder.php'>Back</a>");
}
附带说明:mysql_*
函数已弃用。不要用它们来编写新代码,尤其是在学习的时候。请改用mysqli_*
或PDO。
您可以使用mysql_affected_rows
$query = "DELETE FROM `order` WHERE orderId = {$_POST[id]}" ;
mysql_query($query);
if(0 == mysql_affected_rows()){
echo ("$_POST[id] not deleted !<a href='deleteorder.php'>Back</a>");
}else{
echo ("$_POST[id] deleted succesfully! <a href='deleteorder.php'>Back</a>");
}
您正在测试您的查询是否成功运行。如果删除一行或不删除任何行,则可以成功。
使用mysql_affected_rows
确定是否删除了任何行。
(不过,您最好改用更现代的API)