gpt4 book ai didi

PHP神秘的额外数据库插入

转载 作者:行者123 更新时间:2023-11-29 05:45:44 29 4
gpt4 key购买 nike

我决定要跟踪用户在我的网站上进行的搜索,因此我创建了一个名为“搜索”的 MySQL 表,其中包含一些简单的字段和一个模型(类)以方便插入和管理保存的搜索。

保存搜索的模型函数是:

public function create() {
$q = $this->db->query("INSERT INTO
`searches` (
`section`,
`keywords`,
`results`,
`location`,
`date`
) VALUES (
%s,
%s,
%s,
%s,
%s
)",
$this->section,
$this->keywords,
$this->results,
$this->location,
date('Y-m-d G:i:s'));
$this->id = $this->db->last_insert($q);
}

...在我的 Controller 中,当页面加载时我去:

    /* lets save the search if there is one */
if(isset($_GET['q'])) {
$search = $this->load->model('Searches_Single',null);
$search->set('section','sale');
$search->set('keywords',$_GET['q']);
$search->set('results',$grand_total);
$search->set('location',$this->location->id);
$search->create();
unset($search);
}

令我困惑的是,通常会插入 1-4 行重复行,而不是我期望的只有 1 行。

没有循环,没有重定向...只是一个非常简单的页面加载。坦率地说,我相信这是我上次尝试时发生的事情。

更新

这不会发生在我的本地开发环境中……只发生在生产环境中(可怕)。两者共享完全相同的代码...这可能是服务器问题吗?

更新编号 2我发现这似乎发生在页面打开和关闭时。 AKA - 我检查页面打开的时间,然后脚本记录搜索...然后我检查页面完成加载的时间,脚本似乎也在那里记录搜索...

啊啊啊

最佳答案

您的代码示例并没有真正深入了解可能导致此问题的原因。

您的搜索结果是否分页?如果是这样,您确定仅在满足这些条件时才插入该行吗?

  • 用户在第 1 页。
  • 用户第一次加载页面 1。

您可能在每次加载页面时都插入,或者总是在第 1 页插入,如果用户访问第 2 页并决定返回第 1 页,这会导致重复。

关于PHP神秘的额外数据库插入,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2383776/

29 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com