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

クエリを使用して値を更新できます。

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

URL を参照してください:-

PHP + MySQL トランザクションの例

これを試して:-

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