【问题描述】
Query ERROR!
DBI:
[collection]device_log errno:-6
[con]Array ( [idnum] => 20160105103112987507519559 [mac] => THIRDPARTY [action] => gwsoftware [param1] => [param2] => [info] => [indata] => [outdata] => {"Result":0} [hostip] => 172.16.147.132 [userip] => 112.193.146.249 [toip] => 172.16.147.132 [username] => thirdparty [direction] => 1 [begintime] => 1451961072 [begintime_ms] => 983 [addtime] => 1451961072 [addtime_ms] => 989 [costtime] => 6 [step] => 1 [result] => 0 )
TIP:
刚测试了下,是不是12.5不支持数组了
$info=array("Result"=>0);
$log->AddLog('thirdparty', 'gwsoftware', '', $info,'thirdparty');
我把info变量传入字符串可以,传入数组就会报那个错误
【解决方法】
因为驱动内部需要把php数组转成bson,在转换过程中,需要做转义处理,在1.12.4版本遇到问题而取消了转义处理,导致出现-6的问题了。
1. 更换修复后的驱动。
2. 把参数转换成字符串,如: $cl -> insert( array( 'data' => 'hello "jack".' ) ) ;
修改为 $cl -> insert( json_encode( array( 'data' => 'hello "jack".' ) ) ) ;
【参考链接】
错误码
常见错误处理指南