gpt4 book ai didi

PHP 如果继续执行,不管逻辑如何

转载 作者:行者123 更新时间:2023-11-29 12:40:33 25 4
gpt4 key购买 nike

我已经为此绞尽脑汁好几个小时了,试图找出答案。我有一个 GET 变量,它基本上进入我的数据库,并将 ready 字段从 1 切换到 0 或 0 到 1,具体取决于它当前的状态。

我使用这个网址:change-status.php?id=1

这是无限页面刷新后得到的打印结果:
1(状态)
[已访问] 状态=1 是=1
1=评级
1=本地ID
0(响应)1(id)

我不明白为什么当我刷新时它没有将状态设置为0。我进入 mySQL 并将其手动更改为 0 以测试 elseif,并且它有效。只是 if 部分不起作用。它实际上进入了 if 语句,但它根本不改变数据库。

<?php


require_once 'class/common.php';

$response;

$id = $_GET["id"];

$movies = new Movies();
$movies->get_status($id);

unset($status);
$status = $movies->ready;
$yes = 1;
$no = 0;

echo $status . " (status)<br>";

// Ready Yes, changing to Not Ready and return to AJAX 0
if ($status == $yes) {
$movies->set_status($id, 0);
$response = 0;
echo "[Yes Accessed] status=".$status." yes=".$yes."<br>";
echo $movies->ready."=rating<br>";
echo $id."=local id<br>";
}
// Ready No, changing to Ready and return to AJAX 1
elseif ($status == $no) {
$movies->set_status($id, 1);
$response = 1;
echo "[No Accessed] status=".$status." yes=".$yes."<br>";
}
else {
$response = 404;
}

echo $response . " (response) " . $id . " (id)";


?>

这是我的数据库语句:

// Set Movie Status
public function set_status($id, $ready) {

$statement = $this->database->prepare("UPDATE Movies SET Ready = ? WHERE ID = ?");
$statement->bindParam(1, $id);
$statement->bindParam(2, $ready);
$statement->execute();

}

感谢任何人都可以提供的帮助,我只是不明白为什么它不起作用。应该是这样!

最佳答案

您的 bindParam() 调用中的参数顺序错误。应该是:

$statement->bindParam(1, $ready);
$statement->bindParam(2, $id);

我鼓励您切换到命名参数,这样就不会出现此问题:

$statement = $this->database->prepare("UPDATE Movies SET Ready = :ready WHERE ID = :id");
$statement->bindParam(':id', $id);
$statement->bindParam(':ready', $ready);

关于PHP 如果继续执行,不管逻辑如何,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/26188695/

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