PHP not toggling


PHP not toggling

我有这个代码:

if ($row['locked'] == 0) {
    mysql_query("UPDATE questions SET locked=1 WHERE id='".$topic_id."'") or die('not working');
}
if ($row['locked'] == 1){
    mysql_query("UPDATE questions SET locked=0 WHERE id='".$topic_id."'") or die('not working');
}

它应该切换锁定,但它只将其设置为 1。反之则不然。

为什么?

为什么你不能只做:

    mysql_query("UPDATE questions SET locked = NOT locked WHERE id='".$topic_id."'") or die('not working');

这将直接切换locked列,您将不需要if语句。

为什么

因为$row['locked']等于零。

只需设置$row['locked'] = 1;

在您的控制语句之前。

顺便说一句,

你从哪里得到你的$row['locked']?共享更多代码。

为什么不只在查询中包含变量,而不是编写条件语句?

例如:

$updateTo=!$row['locked'];
$query = "UPDATE questions SET locked='$updateTo' WHERE id='$topic_id'";

附言开始使用mysqliPDO预准备语句,而不是旧的、已弃用的mysql_query


或者只是为了解决您的问题:

$row['locked']设置为 1;

例如,这将通过单击按钮触发操作。

.PHP:

if(isset($_POST['submit'])) {
$row['locked'] = 1;
}

.HTML:

<form action='<?php echo $_SERVER['PHP_SELF'];?>' method='post'>
<input type='submit' name='submit' value='post' />
</form>