搜索
系统检测到您的用户名不符合规范:

thinkphp5 update操作成功,但是无法更新数据库

浏览:2886 发布日期:2019年12月12日 分类:求助交流
表如下:DROP TABLE IF EXISTS `edu_order`;
CREATE TABLE `edu_order` (
`id` int(11) NOT NULL AUTO_INCREMENT,
`out_trade_no` varchar(55) NOT NULL COMMENT '自定义的订单号',
`transaction_id` varchar(55) DEFAULT NULL COMMENT '微信订单号',
`courseid` int(11) NOT NULL DEFAULT '0' COMMENT '课程id',
`price` decimal(5,2) NOT NULL,
`create_time` int(11) NOT NULL DEFAULT '0',
`userid` int(11) NOT NULL DEFAULT '0' COMMENT '用户id',
`trade_type` varchar(50) NOT NULL DEFAULT '' COMMENT '支付方式,默认为空',
`status` tinyint(1) NOT NULL DEFAULT '0' COMMENT '0:未付款,1:已付款,-1:已过期',
`trade_state` varchar(55) NOT NULL DEFAULT '' COMMENT '微信订单中工单交易状态',
PRIMARY KEY (`id`,`out_trade_no`),
UNIQUE KEY `out_trade_no` (`out_trade_no`),
UNIQUE KEY `transaction_id` (`transaction_id`)
) ENGINE=InnoDB AUTO_INCREMENT=16 DEFAULT CHARSET=utf8;

-- ----------------------------
-- Records of edu_order
-- ----------------------------
INSERT INTO `edu_order` VALUES ('13', '25620191211181735256961371', '0', '71', '0.01', '1576059458', '256', '0', '0', 'NOTPAY');
INSERT INTO `edu_order` VALUES ('14', '256201912111835202564453971', '01', '71', '0.01', '1576060523', '256', '0', '0', 'NOTPAY');
INSERT INTO `edu_order` VALUES ('15', '156201912120951252562471671', '', '71', '0.01', '1576115646', '256', '-', '1', 'NOTPAY');
在postman测试打印出来是save()方法返回为1,debug发现更新语句为UPDATE `edu_order` SET `transaction_id`='1008450740201411110005820875',`trade_type`='MICROPAY',`status`=1,`trade_state`='SUCCESS' WHERE `id` = 15 AND `out_trade_no` = '156201912120951252562471671'这语句在Navicat运行更新正常,但是在postman运行成功的情况下,后台数据库没有任何更新,新手求助

下面的是代码:

class Wxpay
{
//微信回调
public function notify(){
$orderData=[];//这里省略返回的xml data,已转换为数组
......
.......
$ret=model('Order')->get_one_order_by_out_trade_no($data['out_trade_no']);


$orderData['id']=$ret->id;
$res=model('Order')->update_order($orderData);
halt($res);
}namespace app\common\model;

class Order extends BaseModel
{

//通过订单号查找记录
public function get_one_order_by_out_trade_no($id){
$res=$this->where('out_trade_no','=',$id)->field('id,status')->find();
// echo $this->getLastSql();
return $res;
}

//更新订单
public function update_order($data=''){
$res=$this->isUpdate(true)->save($data);
echo $this->getLastSql();
return $res;

}

}
下图postman测试结果:


最佳答案
评论() 相关
后面还有条评论,
评论支持使用[code][/code]标签添加代码
您需要登录后才可以评论 登录 | 立即注册
收藏
lalalacp3
积分:315 等级:LV2
热点推荐
(追記) (追記ここまで)
最新更新

我们

合作

网站

信息

ThinkPHP 是一个免费开源的,快速、简单的面向对象的 轻量级PHP开发框架 ,创立于2006年初,遵循Apache2开源协议发布,是为了敏捷WEB应用开发和简化企业应用开发而诞生的。ThinkPHP从诞生以来一直秉承简洁实用的设计原则,在保持出色的性能和至简的代码的同时,也注重易用性。并且拥有众多的原创功能和特性,在社区团队的积极参与下,在易用性、扩展性和性能方面不断优化和改进,已经成长为国内最领先和最具影响力的WEB应用开发框架,众多的典型案例确保可以稳定用于商业以及门户级的开发。

AltStyle によって変換されたページ (->オリジナル) /