有时在电话挂断时会发生此错误。其余的将正常保存。我暴露了糟糕的记录和良好的记录
[[Dec 6 19:47:19]错误[31348] [C-00000045]:cdr_mysql.c:349 mysql_log:无法插入数据库:(1292)错误的日期时间值:第1行“答案”列的“ SIP / sip_lbascunan / 961258985,160,wWTt”
好行
'1575675020.46','1575675020.46','“ 343591171” <343591171>',‘343591171’,‘101961258985’,‘引擎’,‘SIP / asterisk-63-0000002e’,‘SIP / opsmovil-0000002f’,‘挂断’,‘’,‘2019-12-06 20:30:20’,NULL,‘2019-12-06 20:30:20’,‘0’,‘0’,‘无应答’,‘3’,‘’,‘’,‘55’,‘’
坏行
'1575674496.30','1575674496.30','“ SISTEMAS” <1084>','1084',‘90962108827’,‘lbascunan’,‘SIP / 1084-0000001e’,“ SIP / sip_lbascunan-0000001f”,“拨号”,‘SIP / sip_lbascunan / 962108827,160,wWTt’,‘2019-12-06 20:21:36’,‘SIP / sip_lbascunan / 962108827,160,wWTt’,‘2019-12-06 20:22:00’,‘24’,‘0’,‘无答案’,‘3’,‘’,‘’,‘35’,‘’]
我必须将Answer字段从Varchar更改为Datetime以便保存。
这是我的表CDR
CREATE TABLE `cdr` (
`uniqueid` varchar(32) NOT NULL DEFAULT '',
`linkedid` varchar(32) NOT NULL DEFAULT '',
`clid` varchar(80) NOT NULL DEFAULT '',
`src` varchar(80) NOT NULL DEFAULT '',
`dst` varchar(80) NOT NULL DEFAULT '',
`dcontext` varchar(80) NOT NULL DEFAULT '',
`channel` varchar(80) NOT NULL DEFAULT '',
`dstchannel` varchar(80) NOT NULL DEFAULT '',
`lastapp` varchar(80) NOT NULL DEFAULT '',
`lastdata` varchar(80) NOT NULL DEFAULT '',
`start` datetime NOT NULL,
`answer` datetime NOT NULL,
`end` datetime NOT NULL,
`duration` int(11) NOT NULL DEFAULT '0',
`billsec` int(11) NOT NULL DEFAULT '0',
`disposition` varchar(45) NOT NULL DEFAULT '',
`amaflags` int(11) NOT NULL DEFAULT '0',
`accountcode` varchar(20) NOT NULL DEFAULT '',
`userfield` varchar(255) NOT NULL DEFAULT '',
`sequence` varchar(32) NOT NULL DEFAULT '',
`peeraccount` varchar(32) NOT NULL DEFAULT '',
PRIMARY KEY (`uniqueid`),
KEY `start` (`start`),
KEY `dst` (`dst`),
KEY `accountcode` (`accountcode`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8;
只是错误的引用。检查callerid(name)中的特殊符号。
反正没什么可回答的。只是系统设计不好,并且不检查sql注入。