PHP+MYSQLでpvのカウント
現在以下のようにプログラムを組んでいますが、一度ページをリロードすると、列が2つ増えてしまいます。これは何故でしょうか?
詳しい方、ご教示下さい。よろしくお願いいたします。
テーブルの構造は以下になっています。
- id
- page_id
- ip
- created
以下はソースコードの一部です。
$ip = $_SERVER["REMOTE_ADDR"];
$sql2 = "SELECT * FROM pv_counts WHERE ip =" . $ip .
" AND created > current_timestamp - interval 30 minute";
$within_threeminutes = $dbh->prepare($sql2);
$within_threeminutes->execute();
$within_threeminutes_count = $within_threeminutes->fetch();
if($within_threeminutes_count == false){
$sql = "insert into `pv_counts`
(`page_id`, `ip`, `created`)
values
(:page_id, :ip, now())";
$insert_pv = $dbh->prepare($sql);
$params = array(
":page_id" => "index",
":ip" => $ip
);
$insert_pv->execute($params);
}
追記:やりたい事としましては、30分以内に同じipでのアクセスがないかを確認して、無い場合はdbにinsertするといったものです。
データベースをみると、10.0.1.206,10.0.0.208といった自分のipではないものが増えています。
サーバーはAWSを使用しています。
var_dump($_SERVER["REMOTE_ADDR"]);
の実行結果が自分のipアドレスではなく、上記の10.0.0.208になっています。