我成功更新了
$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());
但我担心数据库会再次获得新的更新,我会得到更高的数字
知道该怎么做吗?
答案 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."'");