在mysql中更新相同的数据

时间:2014-11-21 04:51:00

标签: php mysqli

我已经从php

更新了mysql数据
$sql_user = mysqli_query($con,"UPDATE user SET firstname = '".$fname."', lastname = '".$lname."', mobilenumber = '".$mobilenumber."'");
$rows_count = mysqli_affected_rows($con);

此处,更新后,它返回行计数。

当更新相同的数据到表时,它返回0.

我的问题是,

如果更新成功,可能是相同的数据或不同的数据,我想获得成功信息。

我在这里使用mysqli_affected_rows($con)。为此我找到了成功或失败。但它不适用于相同的数据更新。

更新数据(相同数据或不同数据)后如何获得成功或失败。

3 个答案:

答案 0 :(得分:2)

只有在更新行时,

mysql_affected_rows()才会返回计数。

如果您使用相同的数据更新表格。

E.g。 UPDATE users SET name='Dan'nameDan,{}返回0行。{/ p>

为了解决这个问题,我们需要一个开箱即用的解决方案。

在数据库表中添加updated_date字段。哪个应该是DATETIME

每当您触发UPDATE查询时,请将此字段更改为now()

因此,行将更新,您将获得计数。

最终,您的mysql_num_rows()将返回大于0的内容。

答案 1 :(得分:0)

您无法检查受影响的行,因为由于数据相同而没有对行进行更改

mysqli_affected_rows($con)将返回0,您可以做的一件事就是看到查询成功就像这样检查

$sql_user = mysqli_query($con,
                  "UPDATE user SET 
                       firstname = '".$fname."', 
                       lastname = '".$lname."', 
                       mobilenumber = '".$mobilenumber."'"
            );

// check here if its true your query was success
if($sql_user && mysqli_affected_rows($con) <= 0) 
{

}

然后,您可以在更新数据(相同数据或不同数据)后获得成功或失败。

答案 2 :(得分:0)

你缺少像#34; 其中id = 2 &#34;在你的查询..

$sql_user = mysqli_query($con,"UPDATE user SET firstname = '".$fname."', lastname = '".$lname."', mobilenumber = '".$mobilenumber."' where id=2");
$rows_count = mysqli_affected_rows($con);