Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/mysql/63.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Php 我如何判断MySQL更新何时成功,何时实际更新数据?_Php_Mysql_Codeigniter_Sql Update - Fatal编程技术网

Php 我如何判断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-&

我如何判断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->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对象?