当前位置: 首页 > 面试题库 >

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

鲁光霁
2023-03-14
问题内容

如何判断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;
}

TRUE每当UPDATE语句成功执行时,此操作将返回,但是当实际未更新任何行时返回FALSE。

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


问题答案:

看看mysql_affected_rows()

它应该告诉您是否实际更新了什么,而不是没有成功更新导致返回true的情况。

php.net说:

mysql_affected_rows()

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

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

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


 类似资料:
  • 本文向大家介绍JavaScript如何判断input数据类型,包括了JavaScript如何判断input数据类型的使用技巧和注意事项,需要的朋友参考一下 这篇文章主要介绍了JavaScript如何判断input数据类型,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友可以参考下 在HTML中接收用户输入信息一般都会用到<input/>。我今天本来想实现一个功

  • 本文向大家介绍如何判断dpr的倍数?相关面试题,主要包含被问及如何判断dpr的倍数?时的应答技巧和注意事项,需要的朋友参考一下

  • 问题内容: 我不确定如何获得受SQL执行影响的行数。 我喜欢这样: 我可以获得该方法影响的行数。很好 我的问题是更新计数为零时。这可能意味着: 这是DML语句,但不影响任何行。受影响的零行是有效的响应。我只是说某些条件没有得到满足。 这是一个非DML语句(很可能是DDL语句)..根据定义,它不会更改行,因此更新计数始终为零(duh!)。或者换种说法: 更新计数 的概念对于此类语句毫无意义。 我想要

  • 我不确定如何获得SQL执行所影响的行数。 我确实喜欢这样: 返回: (1)SQL数据操作语言(DML)语句的行计数,或(2)0表示不返回任何内容的SQL语句 啊! 我希望是: 从中提取第一个单词。字以空格或EOL行字符结束。 如果该单词(忽略大小写)是INSERT、UPDATE或DELETE,那么它是一个DML语句,并且的输出是相关的,否则的输出是无关的。 丑陋和容易出错。但这个问题唯一可能的解决

  • 我使用的是Hibernate4,启用了惰性加载。我有一个包含对其他对象的引用的基本实体。下面是一个简单的例子: 当我从数据库加载Employee实体时,boss对象由一个Hibernate代理对象表示,这是由于延迟加载的原因。稍后我需要访问boss属性,该属性可能在加载它的同一会话中,也可能不在同一会话中。如果我尝试使用boss对象,但它还没有加载,而我处于不同的位置,我将得到以下错误: 我真的想

  • 本文向大家介绍如何判断一个数组?相关面试题,主要包含被问及如何判断一个数组?时的应答技巧和注意事项,需要的朋友参考一下 参考回答: