关于在ThinkPHP中运用setInc和setDec两个函数

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了关于在ThinkPHP中运用setInc和setDec两个函数相关的知识,希望对你有一定的参考价值。

我在mysql数据库中新建一张表后用setInc和setDec都没有问题,但是如果我在表中添加一个列(比如age int 类型的),就不行了,用var_dump()输出结果是 false, 求大神帮忙啊。。。代码没有问题。。。
主要就是添加一个列后,就实现不了setIce(累加)和setDec(累减)的效果

参考技术A 可能对应的代码有调用字段的限制?如果数据库结构变化的话,语句会有所改动追问

代码内用到的字段就是数据库中的列名,我试了N便,还是不行,只要在表中新加一列就不行了,学校老师也是,没得一个搞得出来,蛋疼啊。。。

ThinkPHP 模型方法 setInc() 和 setDec() 使用详解

对于数字字段的加减,可以直接使用 setInc()setDec() 方法

ThinkPHP 内置了对统计数据(数字字段)的更新方法:

setInc():将数字字段值增加

setDec():将数字字段值减少

setInc()

ThinkPHP setInc() 方法将数字字段值增加。

例子:

<?php
public function update() {
	header("Content-Type:text/html; charset=utf-8");
	$result = M("User")->where(‘uid = 2‘)->setInc(‘score‘, 3);
	if ($result !== false) {
		echo ‘数据更新成功!‘;
	} else {
		echo ‘没更新任何数据!‘;
	}
}

上面例子执行的 SQL 语句为:

UPDATE user SET score=score+3 WHERE uid = 2

setInc() 方法中最后一个参数为数字字段增加的值,如果省略则默认增加 1 。

 

setDec()

setDec() 方法将数字字段值减少。

例子:

<?php
public function update() {
	header("Content-Type:text/html; charset=utf-8");
	$result = M("User")->where(‘uid = 2‘)->setDec(‘score‘, 3);
	if ($result !== false) {
		echo ‘数据更新成功!‘;
	} else {
		echo ‘没更新任何数据!‘;
	}
}

上面例子执行的 SQL 语句为:

UPDATE user SET score=score-3 WHERE uid = 2

setDec() 方法中最后一个参数为数字字段减少的值,如果省略则默认减少 1 。

 

提示

在 ThinkPHP 3.0 版本中,setInc()setDec() 方法取消了条件参数,因此必须配合 where() 方法一起使用。setInc() 与 setDec() 方法也支持连贯操作,从而可以构造更加复杂的更新条件。

以上是关于关于在ThinkPHP中运用setInc和setDec两个函数的主要内容,如果未能解决你的问题,请参考以下文章

ThinkPHP 模型方法 setInc() 和 setDec() 使用详解

thinkPHP5.0中的setInc,setDec方法

thinkphp执行一次setInc('click_num','id='.$cms_id,1),'click_num'自动加3,不知道什么问题,求指教。

thinkphp中的setIncsetDec方法

thinkphp 登陆时怎么让登陆的次数加1 表名为op_test 登陆次数的字段为 number

thinkphp-自增或自减一个字段的值