如何UPDATE mysql行加一并获取值

时间:2012-09-06 13:03:28

标签: php mysql

我成功更新了

    $result = mysql_query("UPDATE $table SET `queue2` = `queue2` + 1 WHERE `id` = '$getid'");

但如何在不向MySQL发送新请求的情况下获取“queue2”值

我可以使用此命令

简单地获取新值
$selresult = mysql_query("SELECT * FROM $table WHERE `id` = '$getid'") or die(mysql_error());

但我担心数据库会再次获得新的更新,我会得到更高的数字

知道该怎么做吗?

3 个答案:

答案 0 :(得分:0)

请参阅网址: -

PHP + MySQL transactions examples

试试这个: -

printf ("Updated records: %d\n", mysql_affected_rows());
mysql_query("COMMIT");

答案 1 :(得分:0)

您需要在查询之间使用事务才能确定。

交易文档are here。一个很好的SO问题,详细介绍了它:PHP + MySQL transactions examples

编辑:

从不同的角度来看,为什么不反过来呢?它可能会节省对事务的需求(认为在写入之前可能会有多次读取):

获取要在此页面中显示的queue2值的值:

mysql_query("SELECT * FROM $table WHERE `id` = '$getid'");

您现在拥有真正的价值,因此您可以运行:

$result = mysql_query("UPDATE $table SET `queue2` = `queue2` + 1 WHERE `id` = '$getid'");

没有交易,您知道更新前数据的价值。

答案 2 :(得分:0)

您可以使用查询来更新值。

mysql_query("UPDATE user_profile SET userpoints = userpoints + 1 WHERE user_id = '".$user_id."'");