ホームページ >バックエンド開発 >PHPチュートリアル >アップデートステートメントについて教えてください、そして質問の数を増やしてください!
select * from user where names='test';: ??sql ステートメント
update user SET num=$nums where names = '$test';: ??sql 増加回数ステートメント
114: ??$nums in theデータベースの保存回数+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',
主キー (`id`),
一意のキー `names` (`names`)
) ENGINE=MyISAM DEFAULT CHARSET=gbk AUTO_INCREMENT=1;
INSERT; INTO `user` (`id`, `names`, `num`) VALUES
(1, 'test', 0)
現在のページ - href ="?names=test"
レコードを 1 つだけ追加するには、ページのリンクを 2 回クリックして新しいウィンドウを開き、現在のページを更新します。とても奇妙なことですが、私は何を間違えたのでしょうか?
$nums = $row['num']+1; l_query("ユーザーSETを更新num=$nums where names = '$test'");
または: mysql_query("update user SET num=$num+1 where names = '$test'");
$nums = $row['num' ]+1; すでに 1 が追加されていますが、次の 1 を追加する必要があるのはなぜですか? [SET num=$num+1]
また、渡された値で判断してませんか?
また、渡された値で判断していませんか?
$test = $_GET['names'];
これは単純な書き方です。 あなたの説明からすると奇妙に思えますが、次のようにデバッグできます。
$test = $_GET['names'];
$sql = "select * from user where names='$test'";
$result = mysql_query($sql); ($result);
file_put_contents('sos.txt', $row['num'].PHP_EOL,FILE_APPEND );
$nums = $row['num']+1; $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 回実行されたことを意味します。
あなたの説明からすると奇妙に思えますが、次のようにデバッグできます。
73
74
わかりません!ローカルとサーバーの両方でテストされました。これで完了です。どこで間違った動きをしたのでしょうか?
あなたは現象を説明しただけで、テストコードを与えていません。
何とも言えませんが、コード (HTML 部分) に何か問題がある可能性があります
php に問題がないことは確認できます。複数回呼び出されているかどうかを確認してください。
firebug ネットワークのリクエストを見てください
そこで呼び出された回数を確認して、php に問題がないことを確認してください。
firebug、この機能は本当に期待していませんでした、忘れていましたが、最近は普通です...
先に投稿を終了します、皆さんありがとう!