今天举行系统测试的时刻突然发现原来写好的效果不正常了,仔细排查了所有代码发现如下:

StorePink::where('id',1)->whereColumn('pinkAccount','<','people')->inc('pinkAccount')->update()

这段代码是作用是查找StorePink表中的列pinkAccount是否小于people,然则这段代码打印出来的语句是:

SELECT * FROM StorePink WHERE id='1' AND `pinkAccount < people LIMIT 1
ThinkPHP剖析出来的时刻把原来的字段people剖析成了字符串了,以是该语句报错。

解决方式

1 准确的写法如下

人人注重看下两段代码where条件分别是:

where('pinkAccount','>','people') //这里字段与字段之间用 > 离隔,示意>后面的是字段值而非字段

where('pinkAccount',' > people') //这里把 > 与后面的字段写在了一起,即字段与字段之间的对照

,

以太坊数据网

www.326681.com采用以太坊区块链高度哈希值作为统计数据,联博以太坊统计数据开源、公平、无任何作弊可能性。联博统计免费提供API接口,支持多语言接入。

,

2 使用关键词whereColumn(此方式在ThinkPHP6的用户手册中找到)

StorePink::where('id',$order['pink_id'])->whereColumn('pinkAccount','<','people')->inc('pinkAccount')->update()

天生的SQL语句如下:

SELECT * FROM StorePink WHERE ( pinkAccount > people )