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

2022-08-30 13:08:09

如何判断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 语句成功时,都会返回此值,但当实际没有更新任何行时,将返回 FALSE。TRUE

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


答案 1

看看mysql_affected_rows()

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

php.net 说:

mysql_affected_rows()

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

您可以使用以下内容来获得所需的结果:

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

答案 2

然后,您将使用mysql_query

SQL 语句、INSERT、UPDATE、DELETE、DELETE 等,mysql_query() 在成功时返回 TRUE,在出错时返回 FALSE。

像这样简单:

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

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

}

推荐