所以基本上我有另一个页面通过 GET 向此页面发送信息。我仔细检查了 URL 以确保 GET 工作正常,确实如此。我不明白的是为什么这个脚本不会:
1)向管理表中的 NumberOfResponse 添加 1...
2)重定向到页面(见代码底部)
现在调用的状态更新为2,但没有其他任何反应,或者有任何 echo 。
代码
<?php
session_start();
include '../includes/connection.php';
include 'functions.php';
error_reporting(E_ALL);
ini_set('display_errors', 1);
$id = escape($_GET['id']);
$banner = escape($_GET['bannerID']);
$bannerName = escape($_GET['bannerN']);
$query = $handler->prepare("UPDATE Calls SET Status = '2', TakenBy = :bannerName WHERE ID=:id");
$query->bindParam(':bannerName', $bannerName);
$query->bindParam(':id', $id);
$query->execute();
$update = $handler->prepare("UPDATE Admins SET NumOfResponse + 1 WHERE ID = :banner");
$update->bindParam(':banner', $banner);
$update->execute();
header("Location: ../pages/incomingCalls.php");
最佳答案
我认为您不需要选择 NumOfResponse 来在第二个查询中更新其值。您可以通过执行单个更新查询来实现此目的。
而且你在这里做了一些奇怪的事情:
$query = $query->fetchObject();
您不需要获取更新查询的结果。
另一个错误是当你这样做时:
$number = $query->NumOfResponse;
您实际上是用另一个值覆盖了已经增加的值 $number 。
您可以这样简化代码:
<?php
session_start();
include '../includes/connection.php';
include 'functions.php';
$id = escape($_GET['id']);
$banner = escape($_GET['bannerID']);
$bannerName = escape($_GET['bannerN']);
$query = $handler->prepare("UPDATE Calls SET Status = '2', TakenBy = :bannerName WHERE ID=:id");
$query->bindParam(':bannerName', $bannerName);
$query->bindParam(':id', $id);
$query->execute();
$update = $handler->prepare("UPDATE Admins SET NumOfResponse = NumOfResponse + 1 WHERE ID = :banner");
$update->bindParam(':newNum', $newNum);
$update->bindParam(':banner', $banner);
$update->execute();
header("Location: ../pages/incomingCalls.php");
关于php - 为什么这个页面添加号码和重定向失败?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/38546631/