今天把项目上传到服务器后出现的问题,改变状态(0.1)的切换.之前的代码如下:
public function Something()
{
if (IS_AJAX) {
$id = I('post.id');
$arrt = I('post.attr');
$isshow = $this->product->where("id='$id'")->getField($arrt);//获取状态(1 OR 0)
if($this->product->where("id='$id'")->setField($arrt,!$isshow)){//设置状态为反
$info = array('i' => 1, 'msg' => "改变状态成功");
}else{
$info = array('i' => 0, 'msg' => "改变状态失败");
}
$this->ajaxReturn($info);
}
}
以上代码在本地测试一切正常 但是到了服务器后将0设置为1正常,但是将1设置为0的时候SQL报错 SET is_top='' 也就是!$isshow可以将1取反为0 但是无法将0取反为1,结果为 ' '
后来不得已将$isshow使用三元赋值$isshow=$isshow==1?0:1;抛弃了之前的!$isshow的写法.bug解决了
疑问主要是?
为什么在linux环境下面 !$isshow取反可以由0取到1 但是1取到0则无法取出来呢?请大佬解答,新手一个谢谢大家.