我有两个问题,一个函数应该将+1添加到数据库字段,并在完成时重定向到目标URL。
问题是,除非我清除缓存,否则我的更新查询不会工作。当我试图找出为什么会发生这种情况时,我遇到了另一个奇怪的问题,那就是我更改函数后没有更新它。
我所做的就是尝试对header进行注释,但它仍在重定向我,直到缓存被清除。另一方面,当header被注释时,在我清除缓存之后,我的更新函数每次都会工作。
public function clickShortlink($slug) {
$connect = $this->connect();
$stmt = $connect->prepare("UPDATE `shortlink` SET clicks = clicks + 1 WHERE slug = :slug;");
$stmt->bindValue(":slug", $slug);
$stmt->execute();
$stmt = $connect->prepare("SELECT target FROM `shortlink` WHERE slug = :slug");
$stmt->bindValue(":slug", $slug);
$stmt->execute();
while ($row = $stmt->fetch(PDO::FETCH_ASSOC)) {
$target = $row['target'];
}
if (isset($target)) {
$connect = null;
header("Location: ".$target);
exit;
}
$connect = null;
}关于header,我错过了什么?
编辑
这就是我调用clickShortLink()的方式
<?php
if (isset($_GET['gototarget'])) {
$shortlink = new Shortlink();
$url = $shortlink->clickShortlink($_GET['slug']);
}
?>
<form>
<br>
<br>
<input type="text" name="slug" value="di5gV">
<button name="gototarget">Go to target</button>
</form>https://stackoverflow.com/questions/51051774
复制相似问题