Php Mysql请求在插入问题上创建多个记录

Php Mysql请求在插入问题上创建多个记录,php,mysql,nginx,Php,Mysql,Nginx,我会用两个词来解释我的问题。我有一个这样的地址 https://example.com/update/?web=SecondString 有这样的代码 if ($_GET['web']) { echo $_GET['web']; // will show SecondString $db = new \PDO('*********'); $dbQuery = $db->prepare('INSERT INTO traf(website, count) VALUES(

我会用两个词来解释我的问题。我有一个这样的地址

https://example.com/update/?web=SecondString
有这样的代码

if ($_GET['web']) {         

echo $_GET['web']; // will show SecondString

$db = new \PDO('*********');
$dbQuery = $db->prepare('INSERT INTO traf(website, count) VALUES(:web, 1)');
$dbQuery->bindParam(':web', $_GET['web']);        
$dbQuery->execute();
exit;
}

数据库显示了这一点

万一

$db->prepare('INSERT INTO traf(website, count) VALUES("MYSTRING", 1)');
一切都好



有人能给我解释一下发生了什么事以及如何修复吗?

原因是chrome的扩展导致了额外的请求。。。。我杀了一整天才发现这一点。

原因是一个chrome扩展,它提出了额外的请求。。。。我花了一整天的时间才发现这一点。

您确定没有在每次更改输入字段时提交表单吗?使用“网络”检查器查看您的浏览器客户端正在做什么,因为我怀疑它发送的请求比您意识到的要多。@tadman它只是一个简单的url,没有任何表单等。只需导航它,就可以了。。。这可能是nginx或某些设置的问题,但我不确定是否查看您的网络流量。在你知道这不是问题之前,我怀疑是的。我以前看到过一个过于急切的自动提交JavaScript片段。在PHP中意外地这样做是不太可能的,因为您必须编写一个循环并执行大量的
substr
调用,就像要花很大的力气才能把事情搞砸一样。但是,使用JavaScript,将其放入
onChange
处理程序而不是
onClick
onSubmit
将准确地完成这项工作。您需要在服务器端进行一些日志记录,以准确地查看您接收的请求和插入的数据。这些数据并不是没有解释就神奇地出现。目前,您描述的唯一插入方法是,如果请求通过
?web=S
,然后通过
?web=Se
,依此类推。检查你的日志。如果必须的话,请添加更多调试代码。@tadman Gosh我终于发现wtf就是这样!那是一个愚蠢的“Chrome Extension”,每次我点击enter时都会发出请求。你确定你没有在每次更改输入字段时提交表单吗?使用“网络”检查器查看您的浏览器客户端正在做什么,因为我怀疑它发送的请求比您意识到的要多。@tadman它只是一个简单的url,没有任何表单等。只需导航它,就可以了。。。这可能是nginx或某些设置的问题,但我不确定是否查看您的网络流量。在你知道这不是问题之前,我怀疑是的。我以前看到过一个过于急切的自动提交JavaScript片段。在PHP中意外地这样做是不太可能的,因为您必须编写一个循环并执行大量的
substr
调用,就像要花很大的力气才能把事情搞砸一样。但是,使用JavaScript,将其放入
onChange
处理程序而不是
onClick
onSubmit
将准确地完成这项工作。您需要在服务器端进行一些日志记录,以准确地查看您接收的请求和插入的数据。这些数据并不是没有解释就神奇地出现。目前,您描述的唯一插入方法是,如果请求通过
?web=S
,然后通过
?web=Se
,依此类推。检查你的日志。如果必须的话,请添加更多调试代码。@tadman Gosh我终于发现wtf就是这样!那是一个愚蠢的福格“Chrome Extension”,每次我点击enter时都会提出请求,真是太棒了。要更快地发现这些问题,一种方法是尝试其他浏览器(如Firefox)或使用类似于
curl
的工具来缩小可能性。@tadman同意你的观点,但我甚至无法想象某些扩展可以提出额外的请求。它可以做很多你意想不到的事情。这就是为什么你需要对哪些被启用进行真正的选择。很好地捕捉到了它。要更快地发现这些问题,一种方法是尝试其他浏览器(如Firefox)或使用类似于
curl
的工具来缩小可能性。@tadman同意你的观点,但我甚至无法想象某些扩展可以提出额外的请求。它可以做很多你意想不到的事情。这就是为什么您需要真正有选择性地选择哪些是启用的。