gpt4 book ai didi

php - MySQL 添加 2,除非我回显该变量,在这种情况下它只添加 1

转载 作者:行者123 更新时间:2023-11-29 23:51:11 24 4
gpt4 key购买 nike

请原谅这个糟糕的标题!

我有以下代码行:

$this->sql->mysqli->query(
"UPDATE `threads` SET `views` = `views` + 1
WHERE `id` = '".$this->thread['id']."'
");

人们会期望这会给 View 添加+1,对吗?嗯,事实并非如此。它增加了 2!

这不是任何类型的循环或任何东西。

无论如何,我尝试解决这个问题..

$views = $this->thread['views']++;      
$this->sql->mysqli->query(
"UPDATE `threads` SET `views` = '".$views."'
WHERE `id` = '".$this->thread['id']."'"
);

再次不走运,它仍然增加了 2!

尝试进一步调试...

$views = $this->thread['views']++;      
$this->sql->mysqli->query(
"UPDATE `threads` SET `views` = '".$views."'
WHERE `id` = '".$this->thread['id']."'"
);
echo $views;

使用上面的代码,$views 准确地回显了它应该执行的操作,并且行准确地更新了它应该执行的操作! echo 使它工作,我不知道为什么,我不想要 echo 。

无法解决这个问题,我感觉有人在撒尿。

问候

麦克风

编辑:事实证明,在上面的版本 1 以下回显什么并不重要,它可以使其工作,但不能没有回显

编辑以回应布莱恩和额外说明:

以下代码使 View 添加两次。 (即加 2)

$this->sql->mysqli->query(
"UPDATE `threads` SET `views` = `views` + 1
WHERE `id` = '".$this->thread['id']."'"
);

以下代码...

$this->sql->mysqli->query(
"UPDATE `threads` SET `views` = `views` + 1
WHERE `id` = '".$this->thread['id']."'"
);
echo 'foo';
  • 回显“foo”一次并
  • 添加 1 到 View (即正常工作)

最佳答案

解决了!

因此,经过大量详细说明和痛苦之后,我找到了此错误的根源。

我注意到它在我的实时网站环境中运行良好,但在开发中却运行不佳。肯定是服务器出了问题?但不 - 错误来自浏览器。

<link rel="icon" type="image/x-icon" href="" />

由于未能设置 favicon 图像但具有空标签,Chrome 和 Firefox(但在我的情况下不是 IE - 在互联网上阅读每个浏览器的特征有所不同)浏览器加载页面两次寻找它。

它似乎也对任何 src="" 执行此操作(例如在图像标签上)属性留空。

为什么 echo 修复了这个问题?

到目前为止,这是该错误最奇怪的特征。我只能推测这是由于在任何有效标记之外(在任何 <html> 声明之前)进行了回显,因此浏览器以不同的方式解析了网页。

$_POST

最后一个令人困惑的地方是,这在 POST 请求期间并没有发生,显然 Chrome 在发送 POST 数据时不会尝试两次。

关于php - MySQL 添加 2,除非我回显该变量,在这种情况下它只添加 1,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/25646880/

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