0

我更新成功

    $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());

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

知道怎么做吗?

4

3 回答 3

0

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

交易文档在这里。一个很好的 SO 问题,详细介绍了它:PHP + MySQL 事务示例

编辑:

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

从这里获取queue2要在页面中显示的值的值:

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

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

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

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

于 2012-09-06T13:06:25.967 回答
0

见网址:-

PHP + MySQL 事务示例

尝试这个:-

printf ("Updated records: %d\n", mysql_affected_rows());
mysql_query("COMMIT");
于 2012-09-06T13:05:31.883 回答
0

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

mysql_query("UPDATE user_profile SET userpoints = userpoints + 1 WHERE user_id = '".$user_id."'");
于 2012-09-06T13:07:53.417 回答