- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我正在开发 Codeigniter
基于网络项目,我需要从管理面板更新用户。如果更新的值与数据库中已存在的值不同,则它可以正常工作。问题是$this->db->affected_rows()
返回TRUE
如果值不同则返回FALSE。
这是我的代码:-
// $where contains the array for where clause
// $data contains the array of user's data which includes the updated value
$this->db
->where($where)
->update('users', $data);
if($this->db->affected_rows() == true)
{
$response = array(
'message' => "User edited successfully",
'status' => true
);
}
else
{
// this else block always get executed if the updated value is equal to the value already exists in database. But in reality the record was updated successfully
$response = array(
'message' => "Unable to edit user",
'status' => false
);
}
return $response;
最佳答案
您可以使用transaction检查查询是否执行成功。之后,您可以检查 $this->db->affected_rows() 以查看管理员是否真的更新了用户值,并相应地返回消息。
更新的代码:
$this->db->trans_start();
// $where contains the array for where clause
// $data contains the array of user's data which includes the updated value
$this->db
->where($where)
->update('users', $data);
$this->db->trans_complete();
if($this->db->trans_status() === FALSE)
{
$response = array(
'message' => "Unable to edit user",
'status' => false
);
}
else
{
if($this->db->affected_rows() > 0)
{
$response = array(
'message' => "User edited successfully",
'status' => true
);
}
else
{
$response = array(
'message' => "User edited successfully, but it looks like you haven't updated anything!",
'status' => true
);
}
}
return $response;
关于php - Codeigniter - 更新查询执行成功,但 $this->db->affected_rows() 返回 false,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/44884659/
显然,除非使用准备好的语句,否则 mysqli_stmt::$affected_rows 不可用。但是,当准备好的语句被使用时,mysqli::$affected_rows 和mysqli_stmt:
有人可以解释一下下面的代码有什么问题吗? query($query); echo $result->affected_rows; ?> 表 INBOX 将 messageid 作为其主键,auto
我只是对此进行了一些测试,我无法确定我是否以正确的方式进行此操作。查询将更新行。但是受影响的行总是返回 0。为什么? real_escape_string($_GET['email']); $acti
我正在使用 codeigniter 2.0.3 版。我正在尝试使用更新查询后获取受影响的行数 $this->db->affected_rows 即使没有更新任何行,它也总是返回 1。我试过 mysql
我试图辨别 replace into 查询是否导致直接写入,或者先删除然后写入。 The MySQL docs say对于前者,受影响的行数应返回 1,对于后者,则应返回大于 1 的值: The af
我正在尝试在非默认数据库上使用affected_rows。查询工作正常,但在检查受影响的行时遇到错误。 这是代码: function activate_tlf($tlf) { $tlfDB =
我有一个网页(我们称之为 A.html)。 A.html 有一些 javascript 可以使用简单的 document.location="B.php" 将页面切换到动态 php 页面(我们称之为
我需要进行多次插入/更新,所以我提出了事务以在出现任何问题时回滚。此外,如果记录已经存在,我的应用程序应该更新记录,如果不存在则插入。 所以首先我尝试使用唯一 ID 更新记录,如果它返回 affect
我有以下 PHP 代码,当我执行它时,affected_rows 返回 -1,但是当我在 HeidiSQL 中运行 select 时,数据在表中。为什么会这样? $id = filter_input(
我在 INSERT 和 SELECT 时似乎无法获取 affected_rows,它出于某种原因只返回 -1?我正在使用一个数据库类,我一直将其用于我使用 MYSQL 的项目,我准备语句以避免 SQL
我使用 Codeigniter 3.0.6 构建系统。通常,我使用 affected_rows() 来检查我的数据库是否更新。 function update($id=0,$data=arra
我有简单的代码。此查询工作正常。它直接通过 sql 工作,也可以从 php 工作(将 $mysqli->query 更改为 $mysqli->multi_query 以使其从 php 工作)但它是 $
这可能是一个有点愚蠢的问题,但我不明白: 我的模型中有这两个函数 public function count() { return $this->db->num_rows(); } publi
我正在对表执行插入操作,只有在更新插入正确时脚本才会继续。 if($this->db->affected_rows() > 0){} 在我的应用程序中的其他地方工作得很好,但由于某种原因,它在某一时刻
我正在使用用户断言函数,例如: debug_assert ( gettype($ob)=='object', "Not an object " .print_r($ob
我在 codeigniter 中有一个这样的查询 $update= $this->db->query("update aas set aa = 'aa' where no=" . $this->db
我需要一些有关测试更新过程的帮助。我知道有 affected_rows() 函数可以显示更新成功。但是当列值与前面的列相同时,我想返回 TRUE 或通过一些准备好的 codeigniter 或 mys
这个问题已经有答案了: How can I detect a create, update, delete query is successful in Codeigniter (2 个回答) 已关闭
我是一名优秀的程序员,十分优秀!