PHP技术交流群:180460365、320205320、320205320
本文博客地址
https://blog.csdn.net/chenyope
thinkphp5.1的一个坑
在插入之前,如果执行了查询语句指定了字段,后面的插入操作只会更新这个字段。导致自己数据插入为空、不全。
比如我先查询,指定 subject 字段
$forum_thread_list=$this->forum_thread->field('subject')->order('tid','desc')->paginate(50,true);
再插入(我后面有插入数据操作)
$is_insert=$this->forum_thread->data($thread_data)->insert();
发现数据库一直都无法按照我写好的数组执行插入,一开始以为是缺了个别字段的数据,直到我打印了sql
echo $this->forum_thread->getLastSql();
发现最后一条语句是这样的,是只插入了一个字段数据。显然这是不对的,我其他字段的值呢???如下:
INSERT INTO `s_forum_thread` (`subject`) VALUES ('我一直都想把北京房子卖了,然后回到老家,换个大房子,买上一辆车,过上慢节奏走的生活。可房东一直不同意。 ')
往上一瞄,发现上面的查询指定了 subject 字段查询,猜测应该是这里的问题(有时候直觉就是那么准准准),于是改成
$forum_thread_list=$this->forum_thread->order('tid','desc')->paginate(50,true);
重新运行查看最后一条sql,全部值都有了,搞定!
INSERT INTO `s_forum_thread` (`fid` , `author` , `authorid` , `subject` , `dateline` , `lastpost` , `views` , `status`) VALUES (37 , '段子君' , 12 , '我一直都想把北京房子卖了,然后回到老家,换个大房子,买上一辆车,过上慢节奏走的生活。
可房东一直不同意。 ' , 1555829211 , 1555829211 , 2 , 32)
码农转型中,欢迎关注码农个人公众号,交流深夜的姿势,不要总是阅读毒鸡汤文~