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


How do I tell when a MySQL UPDATE was successful versus actually updated data?

我如何判断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,但当没有实际更新行时返回FALSE。

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

看一下mysql_affected_rows()

它应该告诉你是否实际更新了任何内容,而不是没有成功更新,结果返回true。

php.net表示:

mysql_affected_rows ()

成功时返回受影响的行数,如果是最后一行则返回-1查询失败。

您可以使用以下命令来实现您想要的结果:

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

然后使用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 {
}