使用我的本地机器开发我的网站。我目前正在编写一个脚本o监狱内容抓取器,并在以后禁止它们。
我正在处理跟随'奇怪'的mysql更新情况。
通过尝试更新计数器以设置当前的int + 1,它不会发生,并且相同的记录将作为新记录插入。
当我在本地计算机上运行完全相同的查询时(即使是多次快速请求)它会像它应该的那样计数。
可能是具有相同IP的剪贴板请求页面比mySQL写入查询更快,因此它们将处于某种队列中吗?
有一些好的建议可以很好地对待这个吗?
更多代码:
// Check if ip exists
$sql = $this->dbConnection->prepare("SELECT * FROM $this->table WHERE ipv4 = '$this->ipv4'");
$sql->execute();
$data = $sql->fetch(PDO::FETCH_OBJ);
if ($data) {
// Update counter ip
$sql = $this->dbConnection->prepare("UPDATE $this->table SET counter = counter+1 WHERE ipv4 = '$data->ipv4'");
$sql->execute();
} else {
// Insert new ip
$ip2long = ip2long($this->ip);
$sql = $this->dbConnection->prepare("INSERT INTO $this->table (ip, ipv4, referer, useragent) VALUES ('$ip2long', '$this->ip', '$this->referer', '$this->userAgent')");
$sql->execute();
}