jamis回答ポイント 100ptウォッチ 1

sqlが思い通りの挙動にならない


ページを見るとカウントをとるプログラムを書きました。
※idをユニークに設定。mysql使用。

閲覧やリロードでidのレコードデータがない場合は、レコード(numberは1)を挿入。
既にidがある場合は、numberに+1してカウントしていくものです。

$request_data=$pdo->
prepare("
INSERT INTO table
(id,number)
VALUES
(:id,1)
ON DUPLICATE KEY UPDATE
number = number+1
");

$request_data->bindValue(":id",$id);
$request_data->execute();


上記のプログラムだと、挿入や更新自体は問題がありません。
しかし、idの無いデータで挿入を行ったにも関わらず、numberの値が2となったり、更新時に+2されることがあります。
※うまくいく時とうまくいかない時があります。閲覧やリロードは1回のみ。

また、データベースをみていると後から遅れてデータが入ってくる時もあります。
データベースの遅延?トラブル?とも考えられますが、解決法として何が考えられるでしょうか?

※ 有料アンケート・ポイント付き質問機能は2023年2月28日に終了しました。
ログインして回答する

みんなの回答

この質問へのコメント

この質問への反応(ブックマークコメント)

質問の情報

登録日時
2014-08-16 11:12:12
終了日時
2014-08-20 10:44:34
回答条件
1人5回まで

この質問のカテゴリ

この質問に含まれるキーワード

MySQL2612SQL1319データベース1894プログラム5048Key358レコード916

人気の質問

メニュー

PC版