你好,请帮我解决这个问题
function delete($serviceid)
{
$result = $this->query=("delete from service where service_id='$serviceid'");
$exe=$this->executeNonQuery();
if ($exe){
return $success = "Record deleted successfully.";
} else {
return $error = "Unable to process at this time.";
}
}
$ exe始终为1,即使记录未被删除,因为它只检查查询是否被执行,如何检查记录是否被删除然后显示成功消息
答案 0 :(得分:1)
检查mysql_affected_rows()
答案 1 :(得分:1)
我不知道您正在使用什么数据库类,但通常有单独的方法来访问受影响的行数,以及该命令是否“成功”(仅从数据库接口的角度来看)。
在API文档中查找受影响行数或类似内容的内容。
如果您可以发布更多详细信息,我们可以给您一个具体的答案。
编辑:现在我们知道您正在使用mysqli,您可以使用mysql->affected_rows()
来删除已删除的行数。见http://php.net/manual/en/mysqli.affected-rows.php
function affectedRows() {
return mysqli_affected_rows($this->conn);
}
将其添加到“人员”类。
然后,switch to PDO and prepared statements。你在做什么是非常不安全的。
答案 2 :(得分:1)
我们肯定需要关于$这是一个实例的类的更多信息,以便了解它的查询功能是如何工作的。但是,如果该类使用mysql连接,则mysql_affected_rows()函数应返回已删除的行数。
快速测试将替换该函数而不是检查$ exe:
的值if (mysql_affected_rows()){
return $success = "Record deleted successfully.";
}
查看此内容以获取更多详细信息:http://us2.php.net/mysql_affected_rows