确定CodeIgniter更新查询是否成功影响了任何行

7fhtutme  于 12个月前  发布在  其他
关注(0)|答案(2)|浏览(78)

如何判断MySQL UPDATE成功还是实际更新了数据?

示例:

TABLE
id    city_name
1     Union
2     Marthasville

字符串
如果我运行以下命令:

$data = array('city_name', 'Marthasville');

//update record 2 from Marthasville to the same thing, Marthasville. 
$this->db->where('id', 2);
$this->db->update('table', $data);

if($this->db->affected_rows() > 0)
{
    //I need it to return TRUE when the MySQL was successful even if nothing was actually updated.
    return TRUE;
}else{
    return FALSE;
}


这将在每次UPDATE语句成功时返回TRUE,但在没有实际更新行时返回cnx。
我需要它在每次成功执行UPDATE语句时返回TRUE,即使它实际上没有更改任何记录。

huwehgph

huwehgph1#

查看mysql_affected_rows()
它应该告诉你是否有任何东西实际上被更新了,而不是没有任何东西被成功更新,从而返回true。
php.net说:
mysql_affected_rows()
成功时返回受影响的行数,如果上次查询失败则返回-1。
您可以使用以下方法来实现您想要的结果:

if($this->db->affected_rows() >= 0){ }

字符串

ecr0jaav

ecr0jaav2#

然后使用mysql_query
SQL语句,SQL,UPDATE,SQL,DROP等,mysql_query()在成功时返回TRUE,在错误时返回TRUE。
就像这样简单:

$result = $this->db->update('table', $data);

if($result)
{
     //without error even no row updated
} else {

}

字符串

相关问题