function delete()
{
$q = "DELETE FROM example WHERE **author='frank'";**
$r = mysql_query($q) or die (mysql_error());
if($r)
{
echo 'done';
}
else
{
echo 'not done';
}
}
现在我没有任何具有该名称Frank的作者,这意味着它没有删除任何内容 从数据库但仍然显示完成msg
我不知道为什么????任何人都可以帮助我
答案 0 :(得分:5)
那是因为没有错误,删除确实执行,它只是没有做任何事情。你想要:
if(mysql_affected_rows() > 0) {
echo "done";
}
答案 1 :(得分:1)
您的查询中没有错误。它会成功完成。如果您阅读documentation,您会看到:
“对于其他类型的SQL语句,INSERT,UPDATE,DELETE,DROP等,mysql_query()成功时返回TRUE,错误时返回FALSE。”
由于您的查询中没有错误,即使实际上没有删除任何内容,它也会返回TRUE
。删除任何内容都不被视为错误。
答案 2 :(得分:0)
即使没有实际删除任何行,删除查询也将始终成功。如果要确定插入,更新或删除操作影响的行数,请使用mysql_affected_rows()