我有以下要执行的PHP脚本。它非常简单,但是由于它无法正常工作,因此我忽略了某些内容。如果用户切换单选按钮,则会调用此脚本并刷新页面。但是,MySQL中的“已启用”列永远不会从“ 0”更新为“ 1”。如果我手动将启用的列的值输入为“ 1”,那么脚本将执行将启用的列的值更新为“ 0”,但再也不会更新为“ 1”的情况。我在俯视什么?

$sql="SELECT enabled FROM somecolumn.persist";
$row = mysql_fetch_row($sql);
$enabled=$row[0];

if ($enabled==0) {
    $query="UPDATE `somecolumn`.`persist` SET  `enabled` =  '1' WHERE `persist`.`enabled` =0";
} else {
    $query="UPDATE `somecolumn`.`persist` SET  `enabled` =  '0' WHERE `persist`.`enabled` =1";
}
mysql_query($query);

最佳答案

似乎您正在做的只是切换给定表中所有记录的列值。为什么还要从数据库中读取值然后进行更新呢?您可以立即进行更新。

$sql = "UPDATE `somecolumn`.`persist` SET `enabled` = ABS(`enabled` - 1)";
$result = mysql_query($sql);

if (false === $result) { // something went wrong
    throw new Exception('Query "'. $sql . '" failed with error: ' . mysql_error());
}


这会将所有1都翻转为0,将0翻转为1',而无需执行任何SELECT

关于php - PHP脚本更新值无法正常工作,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/19261185/

10-13 00:48