0

挂断电话时,有时会出现此错误。其余正常保存。我暴露了一个坏记录和一个好记录

[Dec 6 19:47:19] 错误 [31348][C-00000045]: cdr_mysql.c:349 mysql_log: 无法插入数据库: (1292) 日期时间值不正确: 'SIP/sip_lbascunan/961258985,160,wWTt'对于第 1 行的“答案”列

好排

'1575675020.46', '1575675020.46', '“343591171” <343591171>', '343591171', '101961258985', '引擎', 'SIP/asterisk-63-0000002e', '02SIP/opsmovil-000' ,'','2019-12-06 20:30:20',NULL,'2019-12-06 20:30:20','0','0','没有答案','3',' ', '', '55', ''</p>

坏行

'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',''</p>

我必须将 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;
4

1 回答 1

0

只是不正​​确的说法。检查 callerid(name) 中的特殊符号。

反正也没什么好回答的。只是糟糕的系统设计,没有检查 sql 注入。

于 2019-12-13T02:24:41.423 回答