0

この PHP コードを index.php ページの最上部に配置しました。

<?php
session_start();
include 'includes/dbconnection.php';

$sql="INSERT into site_statistics (ipaddress, datetime, url) values ('".$_SERVER['REMOTE_ADDR']."', '".date("Y-m-d H:i:s")."', '".$_SERVER['PHP_SELF']."') ";
$rs=mysql_query($sql,$conn) or die(mysql_error());
?>

データベースへの挿入は問題ありませんが、一度だけ更新すると、常に複数の行がテーブルに配置されるようです

session_start(); はショッピング カートに使用されているため、削除できません

4

2 に答える 2

1

varchar(32) である列を追加し、それを主キーにして、セッション ID を挿入します。すなわち。

$sql="INSERT into site_statistics (sid, ipaddress, datetime, url) values ('" . session_id() . "', '".$_SERVER['REMOTE_ADDR']."', '".date("Y-m-d H:i:s")."', '".$_SERVER['PHP_SELF']."') ";

セッション ID はその特定の時間の訪問者に固有であるため、それを主キーにすることで、その特定の訪問で同じ訪問者が複数回挿入されるのを防ぐことができます。

于 2013-03-14T12:48:17.490 に答える
1

ページの更新時にフィールドを更新する必要がある場合は、

REPLACE INTO

SQLクエリで、そうでない場合は、最初にデータベースを確認できます

if(...){
  ...
}

声明。

于 2013-03-14T12:57:33.097 に答える