首页 > 解决方案 > 无法从网址更新

问题描述

我有这部分代码。但是当我点击https://..../posts.php?unpublish=4时,什么也没有发生。页面刚刚刷新,没有日志。当我单击它时,它应该将值从 1 更改为 0。我的代码在 XAMPP 上运行,但在 GoGaddy 共享主机中不起作用。

// if I clicks the publish post button

if (isset($_GET['publish']) || isset($_GET['unpublish'])) {
$message = "";
if (isset($_GET['publish'])) {
    $message = "Post published successfully";
    $post_id = $_GET['publish'];
} else if (isset($_GET['unpublish'])) {
    $message = "Post successfully unpublished";
    $post_id = $_GET['unpublish'];
}

togglePublishPost($post_id, $message);

}

function togglePublishPost($post_id, $message)
{
global $conn;
$sql = "UPDATE posts SET published=!published WHERE id=$post_id";

if (mysqli_query($conn, $sql)) {
    $_SESSION['message'] = $message;
    header("location: posts.php");
    exit(0);
}
}

标签: phpsql

解决方案


问题不在 PHP 代码中,而在 SQL 查询中。

要使用相反的值,published您必须使用NOT. 使用此查询:

$sql = "UPDATE posts SET published = NOT published WHERE id = $post_id";

推荐阅读