TP5 数据操作自增自减&表达式

1.原始写法

查看报错的位置:thinkphp/library/think/db/Builder.php
在这里插入图片描述
可以看到exp方法已经被舍弃了,但是系统还留下inc 跟dec 方法
inc 代表增加 dec 代表减少
然后可以修改成这样
TP5 数据操作自增自减&表达式_第1张图片

这种写法对于修改单条记录或者批量修改都支持,批量修改用savaAll($data)即可.

$data = [
	'key1‘ =>[
			'主键',
			'score'= >['inc',2],
			'count'=>['dex',3]
	],
	'key2‘ =>[
		'主键',
		'score'= >['inc',4],
		'count'=>['dex',5]
		]
];

$this->saveAll($data,false);

2. setInc & setDec
  1. 自增方法:db(‘数据表名’)->where(‘条件’)->setInc(‘字段’,值);
    例子:db(‘user’)->where(‘uid’,$uid)->setInc(‘score’,5);//用户积分加5
  2. 自减方法:db(‘数据表名’)->where(‘条件’)->setDec(‘字段’,值);
    例子:db(‘user’)->where(‘uid’,$uid)->setDec(‘score’,5);//用户积分减5
3.表达式
where(['exp' => new Expression('c.stock_num-c.lock_num>0')])

你可能感兴趣的:(PHP)