api笔记(三)

阅读数:911 发布时间:2016-05-26 15:52:57

作者:zzl005 标签: 朱忠来005 api php Mysql SublimeText Alignment Snippets

前面两篇:

api 编写过程错误总结

update zzl_odr_tbl set pat_id = '', dep_id = '', doc_id = '', h_id = '', odr_cost = '10000', odr_time = '2016-03-12 11:06:08.177', odr_timeto = '2016-03-12 11:06:08.177', odr_pay = '2', odr_desc = '眼部不适' where odr_id = 

原因:his_route.php 中,参数错误$params['ord_id'] = $_REQUEST['odr_id'];,应该是$params['odr_id'] = $_REQUEST['odr_id'];

select * from zzl_dep_tbl where dep_id = 

原因: $query_dep = "dep_id = $dep_id"; $sql = "select * from zzl_dep_tbl where ".$query_dep;
其中的 "dep_id = $dep_id"; dep_id写成了id

总结:
这次 api 编写过程中,错误产生的原因有三点:

  1. sql 语句不熟悉,编写 sql 语句比较慢,还容易写错
  2. 传值错误,主要是参数名称写错
  3. 数据库没有连接成功

编程技巧的提高

$params               = array();
$params['pat_id']     = $_REQUEST['pat_id'];
$params['dep_id']     = $_REQUEST['dep_id'];
$params['doc_id']     = $_REQUEST['doc_id'];
$params['h_id']       = $_REQUEST['h_id'];
$params['odr_cost']   = $_REQUEST['odr_cost'];
$params['odr_time']   = $_REQUEST['odr_time'];
$params['odr_timeto'] = $_REQUEST['odr_timeto'];
$params['odr_pay']    = $_REQUEST['odr_pay'];
$params['odr_desc']   = $_REQUEST['odr_desc'];
$params['odr_id']     = $_REQUEST['odr_id'];
echo json_encode(HIS::odr_update_info($params));

class_his.php

$update_odr = "pat_id = '".$params['pat_id']."', dep_id = '".$params['dep_id']."', doc_id = '".$params['doc_id']."', h_id  = '".$params['h_id']."', odr_cost = '".$params['odr_cost']."', odr_time = '".$params['odr_time']."', odr_timeto = '".$params['odr_timeto']."', odr_pay = '".$params['odr_pay']."', odr_desc = '".$params['odr_desc']."' where odr_id = '".$params['odr_id']."'";

api 编写过程的多次思考

一开始的做法:
将不同的 api 放在不同的文件中,分别调用,比如对科室表的增删改查,分别放在 dep_get_info.php,dep_delete_info.php,dep_update_info.php,dep_insert_info.php 中,调用的时候,传入不同的参数。
这样做的问题:
每次调用,都会产生一次 IO 请求,代码中会重复引入 class_base.php,config.php

修改后的做法:
将不同的调用方法都放在一个文件 class_his.php 中,然后在 his_route.php 中,通过 switch 方法 管理不同的调用,这个时候,对于不同文件的请求,变成了一个 method 参数的传递,比如对于某科室的查询,从对 dep_get_info.php 的请求,变成了

switch ($method) {

    ...

    /**
     *科室
    **/
    case 'dep_get_info':
        echo json_encode(HIS::dep_get_info($_REQUEST['dep_id']));
        break;

    ...

    default:
        # code...
        break;
}

这时候,只要传入 methoddep_id

参数的传递:

在上一段编程技巧的提高中,也写了将多个参数,作为一个参数数组进行传递,这样做,主要的目的是提高代码的可阅读性,方便后期的维护。

相关文章推荐: