有时在挂断呼叫时会发生此错误。其余部分正常保存。我揭露了一个不好的记录和一个好的记录
[12 月 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/星号-63-0000002e", 'SIP/opsmovil-0000002f', '挂断', '', '2019-12-06 20:30:20', 空, '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"、">
我不得不将"答案"字段从"瓦尔查尔"更改为"日期时间",以便可以保存。
这是我的表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;
只是不正确的四分法。 检查呼叫 ID(名称(中的特殊符号。
无论如何,这没什么可回答的。只是糟糕的系统设计,没有检查SQL注入。