1

2 つの列を持つ MySQL テーブルがあります。最初の列は IP アドレスで、2 番目の列は増分する必要がある整数です。

新しい IP が Web サイトにアクセスすると、その IP に対応する整数を 1 ずつ増やす必要があります。PHP スクリプトは、IP アドレスがデータベースに既に存在する場合も処理する必要があります。

これは整数を更新するためのものです:

UPDATE user SET points = points + 1 WHERE code = '$u'

そして、これはデータベースに新しいIPを追加するためのものです(二重値を保存できない属性「unique」を使用しています):

INSERT IGNORE INTO $DB_Table (ip,code) values(INET_ATON('$ip'),'$code')

ここで、新しい IP が Web サイトにアクセスしたときにのみ、整数を 1 ずつ増やしたいと考えています。2 つのクエリを減らして、1 つのクエリで仕事を終わらせることができれば素晴らしいと思います。助けてくれてありがとう。

4

3 に答える 3

1

INSERT INTO $DB_Table (ip,code) values(INET_ATON('$ip'),'$code') ON DUPLICATE KEY UPDATE user SET points = points + 1 WHERE code = '$u'

MYSQL テーブルにはpointsDEFAULT = 1があります

于 2012-08-03T17:09:52.490 に答える
1

INSERT ... ON DUPLICATE KEY次のメソッドを使用して、2 つをマージできます。

INSERT INTO visitors (ip, code, counter) VALUES (INET_ATON($ip), '$code', 1) ON DUPLICATE KEY UPDATE counter = counter + 1;
于 2012-08-03T17:10:13.207 に答える