如何判断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
,即使它实际上没有更改任何记录。
答案 0 :(得分:42)
它应该告诉你是否有任何实际更新,而不是没有成功更新,导致返回true。
php.net说:
mysql_affected_rows()函数
成功时返回受影响的行数,如果是最后一行则返回-1 查询失败。
您可以使用以下方法获得所需的结果:
if($this->db->affected_rows() >= 0){ }
答案 1 :(得分: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 {
}