APP有可能面临的错误问题:
1. APP强退 2. 数据加载失败 3. APP潜在问题 等等
错误日志表,用于记录发送过来的错误信息
CREATE TABLE IF NOT EXISTS `error_log` (
`id` mediumint(9) NOT NULL AUTO_INCREMENT COMMENT '主键',
`app_id` tinyint(4) NOT NULL COMMENT '客户端设备id',
`did` varchar(50) NOT NULL COMMENT '客户端设备信息',
`version_id` smallint(6) NOT NULL COMMENT '版本号',
`version_mini` smallint(6) NOT NULL COMMENT '小版本号',
`error_log` varchar(255) NOT NULL COMMENT '错误信息',
`create_time` int(11) NOT NULL COMMENT '添加时间',
PRIMARY KEY (`id`)
) ENGINE=MyISAM DEFAULT CHARSET=utf8 COMMENT='app错误日志表' AUTO_INCREMENT=2 ;
当客户端APP遇到错误,会发送过来相应的错误信息,然后插入数据库即可,很简单。
<?php
/**************************************
*
* 错误日志写入类
* 学php的小蚂蚁
* 博客 http://my.oschina.net/woshixiaomayi/blog
*
**********************************/
//载入基础类,进行信息判断
//代码内容请参考 http://my.oschina.net/woshixiaomayi/blog/519783
require_once('./common.php');
class Error extends Common{
public function index(){
//首先对客户端发送的信息,进行确认
$this->check();
//判断错误内容是否有传来
$error_log = isset($_POST['error_log'])?$_POST['error_log']:'';
if($error_log){
//有数据,则组装sql语句,准备插入数据库
$sql="
insert into `error_log`(
`app_id`,
`did`,
`version_id`,
`version_mini`,
`error_log`,
`create_time`
)values(
".$this->param['app_id'].",
".$this->param['did'].",
".$this->param['version_id'].",
".$this->param['version_mini'].",
'".$_POST['error_log']."',
".time()."
)
";
try{
$connect = Db::getInstance()->connect();
}catch(Exception $e){
//返回给APP的错误提示
return Response::show(400,'mysql not connect');
}
//插入数据库即可
$result=mysql_query($sql,$connect);
//根据数据库执行结果,返回对应的数据
if($result){
return Response::show(200,'错误日志插入成功');
}else{
return Response::show(400,'错误日志插入失败');
}
}
}
}
$obj = new Error();
$obj -> index();
?>
APP开发接口的笔记今天就结束了,想起之前第一次做手机接口,确实做的简单了,错误的认为只是把数据json一下返回就ok,里面还有这么多学问在其中。在此感谢慕课网的singwa老师的倾情讲解,令人受益匪浅。未来路还很长,继续加油 ヾ(≧▽≦*)o
来源:oschina
链接:https://my.oschina.net/u/1423209/blog/520615