- 15
- 0
- 约4.87千字
- 约 6页
- 2017-06-05 发布于湖北
- 举报
接⼜调试:在线sql语句查看与性能优化
后台接⼜绝⼤数情况下,都需要与数据库进⾏交互,以获取业务数据或者接收保存
户端上报的数据。为⽅便后台开发同学进⾏调试,以及实时查看全部执⾏的SQL语
句,这⾥简单地对全部执⾏的SQL语句进⾏调试模式下输出。
2.13.1 开启SQL调试
开启调试模式很简单,但这⾥和通常的框架不⼀样,我们不是全部统⼀地开启调试模
式,因为在接⼜正常调⽤情况下返回⾮法的JSON会导致接⼜结果解析失败。故我们
通过添加调试参数来控制是否开启SQL调试。如下:
//$vim ./Public/init.php
//数据操作 - 基于NotORM
DI()-notorm = function() {
$ ebug = isset($_GET[ ebug]) ? true : false;
return new PhalApi_DB_NotORM(DI()-config-get( bs), $ ebug
};
特别注意: 通常,我们的调试参数不应都简单地使⽤debug= 1,⽽是各
⾃定义,如 复杂⼀点:__phalapi_debug__=1 ,或者再添加⼀个简单
的验签,额外带个参数校验,如:
phalapisign__=202cb962ac59075b964b07 152d234b70 。减少暴露SQL 的
风险。
2.13.2 调试⽰例
回到前⾯获取⽤户基本信息接⼜ /dem /?service=User .GetBaseInf 的⽰例。
(1)正常情况下
请求:
http:// ev ./ emo/?service=User.GetBaseInfouser_i =1
返回:
{ret:200, ata:{co e:0,msg:,info:{i :1,name: og
(2)带debug=1调试下
请求:
http:// ev ./ emo/?service=User.GetBaseInfouser_i =1
返回:
[1 - 0.00057s]SELECT * FROM tbl_user WHERE (i = ?); -- 1
{ret:200, ata:{co e:0,msg:,info:{i :1,name: og
2.13.3 ⼀个 误的接⼜开发
有时,在进⾏接⼜开发时,会需要进⾏批量获取的功能,如列表。但很多开发的同学
可能会因为时间赶或者没有意识去对SQL查询进⾏优化,或者甚⾄不知道⾃⼰的接⼜
背后隐藏着多少问题。下⾯是⼀个错误的开发⽰例。
(1)新增的批量获取接⼜
假设我们在开发⼀个国际的项⽬,并且运⾏良好,BOSS说因业务需要,要加多⼀个
接⼜以⽀持批量获取⽤户的基本信息,提供给国外某知名的社交平台调⽤。
于是乎,我们很快就根据原来的单个获取接⼜实现了新的接⼜:
//$vim ./Demo/Api/User.php
?php
class Api_User exten s PhalApi_Api {
public function getRules() {
return array(
// ...
getMultiBaseInfo = array(
user_i s = array(name = user_i s, type
),
);
}
// ...
public function getMultiBaseInfo() {
$rs = array(co e = 0, msg = , list = array());
$ omain = new Domain_User();
foreach ($this-user_i s as $userI ) {
$rs[list][] = $ omain-getBaseInfo($userI );
}
return $rs;
}
}
(2)运⾏调⽤⼀下
显然,我们可以很清楚地调⽤新增的接⼜:
http:// ev ./ emo/?service=User.GetMultiBaseInfouser_i
可返回:
{
ret: 200,
您可能关注的文档
最近下载
- (正式版)DB1501∕T 0038-2023 《红花生态种植技术规程》.pdf VIP
- 2025年广东中山中考语文试题及答案(word版) .pdf VIP
- 《中国文化概论》张岱年课后习题答案.pdf VIP
- 德阳市中考:2025年-2023年《化学》考试真题与参考答案.pdf
- 公路平面交叉设计细则.docx VIP
- 人教版二年级下册数学全册教学设计(配2026年春改版教材).docx
- 智慧树 知到 大学生爱国教育十讲 章节测试答案.docx VIP
- 2024年广东中山中考语文试题及答案.pdf VIP
- 医院药品采购管理制度细则.docx VIP
- 2《JavaScript初级》教学计划大纲.docx VIP
原创力文档

文档评论(0)