1:配置了crontab 但是没有自动执行
错误的配置方式:
*/2 * * * * php /srv/www/www.21cake.com/app/base/cmd b2c:unpurchase autocheck >> /srv/www/www.21cake.com/data/logs/unpurchase_crontab.log
正确的配置方式:
*/2 * * * * /opt/php/bin/php /srv/www/www.21cake.com/app/base/cmd b2c:unpurchase autocheck >> /srv/www/www.21cake.com/data/logs/unpurchase_crontab.log
原因:php要写完整路径,不然找不到php。
2:今天往一个很简单的表里插入数据,但就是保存不进去,也不报错
代码如下:
$tradeUnionBindMemberData = [
'login_member_id' => $this->memberId,
'login_mobile' => $member->mobile,
'mobile' => $member->mobile,
];
$tradeUnionBindMemberMdl = new TradeUnionMember();
$tradeUnionBindMemberMdl->save($tradeUnionBindMemberData);
表结构:
CREATE TABLE `sdb_activities_trade_union_member` (
`id` bigint(20) unsigned NOT NULL AUTO_INCREMENT,
`mobile` char(11) NOT NULL DEFAULT '',
`id_card` varchar(50) NOT NULL,
`login_member_id` bigint(20) unsigned NOT NULL,
`login_mobile` char(11) NOT NULL DEFAULT '',
`disabled` enum('true','false') NOT NULL DEFAULT 'false',
`create_at` timestamp NOT NULL DEFAULT CURRENT_TIMESTAMP,
`update_at` timestamp NOT NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP,
PRIMARY KEY (`id`),
UNIQUE KEY `idx_login_member_id` (`login_member_id`),
UNIQUE KEY `idx_login_mobile` (`login_mobile`),
KEY `idx_id_card` (`id_card`),
KEY `idx_mobile` (`mobile`)
) ENGINE=InnoDB AUTO_INCREMENT=14 DEFAULT CHARSET=utf8;
原因:
id_card字段建表时设置了not null,而代码里没有明确的指定id_card=>'',可能是框架在往mysql写数据时主动的把数据包装成了id_card=>null,因为你
id_card字段建表时设置了not null,就是不允许设置为null,你现在又往数据库里插入null,所以插不进去。
解决方法:
1:改代码,加上id_card=>''
2:改表结构,改成`id_card` varchar(50) DEFAULT '',