【发布时间】:2016-09-22 15:10:26
【问题描述】:
我有一个插入查询,它可以正常工作,但有一些我无法理解!
我的查询:
$query = $db -> prepare ("INSERT INTO table (data_1, data_2, data_3)
VALUES (:data_1, :data_2, :data_3)");
if ($query -> execute (array (":date_1" => $date_1, ":data_2" => $data_2, ":data_3" => $data_3)) == true AND ($query -> rowCount () > 0))
{
echo "Success";
}
else
{
echo "Failed";
}
这将每次返回“成功”,但每隔几分钟将一行插入数据库! (即使我尝试刷新页面 1000 次,我也会得到“成功”但数据库中没有新行)
我找不到问题出在哪里,在网上搜索时也没有找到任何问题的答案!
还有其他方法可以检查行是否已正确插入到数据库中?
更新:
我刚刚发现,当我使用不同的 URL 时,例如 (example.com/?data_1=data1) 和之后 (example.com/?data_1=data2),它工作得很好,可以将行插入数据库!
但是当我再次尝试使用相同的 URL 时,大约 2 或 3 分钟不会插入该行!
更新 2:
在脚本上工作了 10 多个小时后,我只是想可能是因为我在服务器上使用了 Varnish Cache Server!
Varnish 是否有可能因为缓存页面而出现此问题,因此 PHP 脚本无法运行,因为它由 Varnish 提供服务?
*我必须在下周@home 时检查它,因为我无法从其他网络访问服务器!
所以我只想知道禁用 Varnish 是否有可能解决这个问题?因为我对 Varnish 没有太多经验!
更新 3:
我刚刚禁用了 Varnish,它工作正常,关于使用 Varnish,有什么方法可以配置 Varnish 以更好地处理动态页面?
*我想,但我不确定 Varnish 是否能像动态页面那样工作,它也会产生一些安全问题!我没有检查任何东西,我也不是使用 Varnish 的专家,但根据我对 PHP 的理解,我认为将 Varnish 用于动态页面并不是一个好主意!
【问题讨论】:
-
PHP 不“只是运行”。如果它正在运行,那么你正在做的事情正在导致它。
-
@MarcB 你能再清楚一点吗?
-
@MarcB THX 为你解答,即使一开始并不清楚,但帮助我思考你的话并找到正确的方向来解决问题:)