ホームページ >バックエンド開発 >PHPチュートリアル >声明を更新し、質問の数を増やしてください。
アップデートステートメントについて教えてください、そして質問の数を増やしてください! ! !
select * from user where names='test';:——SQL ステートメント
update user SET num=$nums where names = '$test';:——SQL 増加回数ステートメント
114:— —$nums データベースの保存回数 1
113:——$row['num'] データベースの保存回数
1:—ユーザー テーブルの $row['id']ID
test:——$row['names'] データベース内のテスト データ
これは、names 値のアクセス クリック数です。奇妙なことに、リンクをクリックすると回数は 2 回ずつ増加しますが、リンクを開いて新しいウィンドウで実行すると 1 回しか増加せず、更新も 1 回増加します
$test = $_GET['names'];
$sql = "select * from user where names='$test'";
$result = mysql_query($sql);
$row = mysql_fetch_array($result);
$nums = $row['num'] 1;
mysql_query("update user SET num=$nums where names = '$test'");
または: mysql_query("update user SET num=$num 1 where names = '$test'");
CREATE TABLE IF NOT EXISTS `user` (
`id` int(10) unsigned NOT NULL AUTO_INCREMENT,
`names` varchar(15) NOT NULL DEFAULT '',
`num` tinyint(1) unsigned NOT NULL DEFAULT '0',
PRIMARY KEY (`id`),
一意のキー `names` (`names`)
) ENGINE=MyISAM DEFAULT CHARSET=gbk AUTO_INCREMENT=1;
`user` (`id`, `names`, `num`) 値に挿入します
(1, 'test', 0);
現在のページ - href="?names=test"
ページのリンクを 2 回クリックしてレコードを追加します。リンクを右クリックして新しいウィンドウを開き、現在のページを更新してレコードを 1 つだけ追加します。とても奇妙なことですが、私は何を間違えたのでしょうか?
------解決策のアイデア----------------------あなたの説明を見ると、奇妙に思えます. このようにデバッグできます。
$test = $_GET['names'];
$sql = "select * from user where names='$test'";
$result = mysql_query($ sql);
$row = mysql_fetch_array($result);
file_put_contents('sos.txt', $row['num'].PHP_EOL,FILE_APPEND);
$nums = $row['num '] 1;
file_put_contents('sos.txt', $nums.PHP_EOL,FILE_APPEND);
mysql_query("update user SET num=$nums where names = '$test'");
file_put_contents ('sos.txt', 'update'.PHP_EOL,FILE_APPEND );
?>
実行後、sos.txt を見て文が 3 つあるかどうかを確認します。6 つある場合は、文、それは 2 回実行されたことを意味します。
------解決策のアイデア---------------------- php に問題があります。そこで何回呼び出されたかを確認してください。
firebug ネットワークでリクエストを確認します