Php 我如何判断MySQL更新何时成功,何时实际更新数据?
我如何判断MySQL更新何时成功,何时实际更新数据 示例:Php 我如何判断MySQL更新何时成功,何时实际更新数据?,php,mysql,codeigniter,sql-update,Php,Mysql,Codeigniter,Sql Update,我如何判断MySQL更新何时成功,何时实际更新数据 示例: 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-&
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
,即使它实际上没有更改任何记录 看一看
它应该告诉您是否有任何内容被实际更新,而没有任何内容被成功更新,从而返回true
php.net说:
mysql\u受影响的\u行()
成功时返回受影响的行数,最后一次返回时返回-1
查询失败
您可以使用以下方法来实现所需的结果:
if($this->db->affected_rows() >= 0){ }
然后你会使用:
SQL语句、插入、更新、删除、删除等,mysql_query()
成功时返回TRUE,错误时返回FALSE
简单地说:
$result = $this->db->update('table', $data);
if($result)
{
//without error even no row updated
} else {
}
我刚刚再次更新了我的问题,以更清楚地说明我在使用mysql时遇到的问题。但愿我不会这么快就发布我的问题:我相信JLeafgle的回答仍然是正确的。如果上次查询失败,mysql\u受影响的\u行将返回-1,否则将返回>=0。假设这就是你想要的,那么把你的if语句改成。。。“如果($this->db->infected_rows()>=0)”你是正确的@Jon Stirling。我更新了Jleagle的答案以反映您的建议,但是我不能批准编辑,因此如果其他人可以,那将是非常好的。谢谢如果这对任何人都有用,那么在新的mysqli扩展中,括号将不显示,因此它将是$db->受影响的行;要更新行数(如果编写(),将出现500个错误)。谢谢您的回答。您的代码适用于我的情况,但是,Jleagle的答案在我的代码中更好一些。这是否也适用于PHP更高版本中的PDO对象?