簡體   English   中英

PHP / MySQL INSERT執行兩次

[英]php/MySQL INSERT executing twice

我嘗試了各種方法,例如對象和非對象,以及網絡上的多個示例。 我知道之前已經有人問過這個問題,但是由於某種原因,沒有任何東西可以解決我的問題。 過去,我已經做了很多插入工作,以前從未遇到過這個問題。

我只想記錄ip地址和引薦網址以幫助對抗adwords欺詐/破壞活動,但由於某種原因,它被執行了兩次。 第一次,引薦為空白,第二次引薦網址為自身。

這是我正在使用的當前代碼:

$db = 'defensalegal';
$table = 'dogbite_tracker';

$ip = $_SERVER['REMOTE_ADDR'];
$referer = $_SERVER['HTTP_REFERER'];

$conn = new mysqli($host, $user, $pass, $db);

$conn->query('INSERT INTO '.$table.' (ID, ip, views, timestamp, referer) VALUES("", "'.$ip.'", "1", "'.date('Y-m-d').' @ '.date('H:i:s').'", "'.$referer.'")');
$conn->close();

我已經驗證這不是刷新問題,因為當您直接鍵入url時也會這樣做,並且還擦除了上述代碼段以外的所有文件,以防發生某種沖突,但仍然會重復插入。

我也沒有任何錯誤。

快速修復將是

CREATE UNIQUE INDEX index_ip_timestamp_referer ON dogbite_tracker(ip, timestamp, referer);

這是您問題的快速解決方案,請在數據庫服務器上運行此查詢(SQL控制台)

為了獲得確切的解決方案,您需要發布完整的腳本(代碼)。

看起來您的腳本可以進行重復的插入,如前所述,可以為腳本創建唯一索引
1.檢查先前的ip是否已經在數據庫中
2.更新ip(如果存在)
3.如果ip不存在,請插入新的

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM