欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页  >  后端开发

有关于thinkphp文本字段自增

程序员文章站 2024-01-28 14:54:10
...
我要做到的效果是
UPDATE `com_cn_selldetail` SET `remark`=remark+'今天多少号' WHERE id=62322

请问这种用TP怎么写。
我用array('exp',"remark+'今天多少号'");
打印出来是:
UPDATE `com_cn_selldetail` SET `remark`=remark+\'今天多少号\' WHERE id=62322


回复讨论(解决方案)

'今天多少号'是数字吧?
把单引号去掉试试。

'今天多少号'是数字吧?
把单引号去掉试试。

remark这个字段是文本来的。所以要用单引号

remark存储的是remark=remark+'今天多少号';就是文本字段累加

通过 tp 是做不到的,除非你去修改他的 model 类代码
即便是可以做到,你的 SQL 指令也是错的

文本字段累加,要用 concat
remark=concat(remark,'今天多少号')

通过 tp 是做不到的,除非你去修改他的 model 类代码
即便是可以做到,你的 SQL 指令也是错的

文本字段累加,要用 concat
remark=concat(remark,'今天多少号')

可以说一下,这个在TP中要怎么写。

引用 5 楼 xuzuning 的回复:通过 tp 是做不到的,除非你去修改他的 model 类代码
即便是可以做到,你的 SQL 指令也是错的

文本字段累加,要用 concat
remark=concat(remark,'今天多少号')

可以说一下,这个在TP中要怎么写。
楼上已经说你用直接相加是做不到了,MYSQL中+只能加数字,字符串连接是用concat方法。你这种只能先取出数据,然后用PHP连接后再更新回去。
不过我搞不懂你这个是什么需求,怎么会有人往数据库字段中后面添加一段中文的需求?如果你是所有数据改字段都要加这段中文,那么我建议你直接在MYSQL中运行去掉条件的UPDATE语句。

对于TP框架来说只能是选取出再连接,再更新回去了。