如何判断MySQL UPDATE成功与实际更新的数据?

zec*_*hdc 33 php mysql codeigniter sql-update

如何判断MySQL UPDATE成功与实际更新的数据?

例:

TABLE
id    city_name
1     Union
2     Marthasville
Run Code Online (Sandbox Code Playgroud)

如果我运行以下内容:

$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;
}
Run Code Online (Sandbox Code Playgroud)

这将在TRUE每次UPDATE语句成功时返回,但在没有实际更新行时返回FALSE.

TRUE每次成功执行UPDATE语句时,我都需要它返回,即使它实际上没有更改任何记录.

472*_*084 45

看看mysql_affected_rows()

它应该告诉你是否有任何实际更新,而不是没有成功更新,导致返回true.

php.net说:

mysql_affected_rows()函数

成功时返回受影响的行数,如果上次查询失败,则返回-1.

您可以使用以下方法来实现所需的结果:

if($this->db->affected_rows() >= 0){ }
Run Code Online (Sandbox Code Playgroud)


lng*_*n55 13

然后你会使用mysql_query:

SQL语句,INSERT,UPDATE,DELETE,DROP等,mysql_query()成功时返回TRUE,错误时返回FALSE.

很简单:

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

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

}
Run Code Online (Sandbox Code Playgroud)