查询执行错误检查

时间:2011-03-23 19:31:35

标签: php

你好,请帮我解决这个问题

  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,即使记录未被删除,因为它只检查查询是否被执行,如何检查记录是否被删除然后显示成功消息

3 个答案:

答案 0 :(得分:1)

检查mysql_affected_rows()

Reference

答案 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