api笔记(二)

阅读数:1877 发布时间:2016-05-24 22:02:01

作者:zzl005 标签: mysql api 朱忠来005 分解训练 php

分解需求

his-api分解思维导图

我负责的数据库为:地区表:area_tbl,科室表:dep_tbl,订单表:odr_tbl。所以,我做的 api 的就是用来操作这三个数据库。

数据库操作

首先以 dep_get_info.php 为示例:

<?php 
require_once('../config.php');
require_once('../public/class_base.php');//引用相关的文件
$dep_id    = $_REQUEST['dep_id'];//接受相关的数据
$query_dep = "dep_id = $dep_id";
$sql       = "select * from zzl_dep_tbl where ".$query_dep;//生成sql语句
$rs        = Base::getSingleRs($sql);
if (!$rs) {
    echo "no data";
}
else{
    //echo $rs;
    echo $rs['dep_range'];
}//得到返回的信息
 ?>

对这个文件的解析,可以看这个文章:api笔记
简单来说,就是:

  1. 引入相关文件,这些文件里面定义了相关的配置和操作数据库的方法。
  2. 接收数据
  3. 拼接 sql 操作语句
  4. 将拼接好的 sql 语句传入相关方法,得到返回的数据集
  5. 操作得到的数据集(判断、打印)等

下面说一说在 api 中具体如何进行数据库的增删改查(字段):
基本的思路就是:

接收一些字段值,然后,拼接 sql 语句,再调用相关方法进行操作

下面操作的数据库都是 zzl_dep_tbl,字段值有:

插入(insert)
//接收数据(各字段值)
$h_id       = $_REQUEST['h_id'];
$dep_name   = $_REQUEST['dep_name'];
$dep_range  = $_REQUEST['dep_range'];
$dep_master = $_REQUEST['dep_master'];
$dep_desc   = $_REQUEST['dep_desc'];
$dep_pic    = $_REQUEST['dep_pic'];
//完整 sql 语句
$sql = "insert into zzl_dep_tbl 
(h_id, dep_name, dep_range, dep_master, dep_desc, dep_pic) 
values 
('".$h_id."','".$dep_name."','".$dep_range."', '".$dep_master."','".$dep_desc."','".$dep_pic."')";
查询(select)
//接收数据(各字段值)
$dep_id    = $_REQUEST['dep_id'];
//拼接 sql 语句
$query_dep = "dep_id = $dep_id";
$sql       = "select * from zzl_dep_tbl where ".$query_dep;
修改(update)
//接收数据(各字段值)
$dep_id     = $_REQUEST['dep_id'];
$h_id       = $_REQUEST['h_id'];
$dep_name   = $_REQUEST['dep_name'];
$dep_range  = $_REQUEST['dep_range'];
$dep_master = $_REQUEST['dep_master'];
$dep_desc   = $_REQUEST['dep_desc'];
$dep_pic    = $_REQUEST['dep_pic'];
//拼接 sql 语句--部分
$update_dep = "
    h_id             = '".$h_id."',
    dep_name         = '".$dep_name."',
    dep_range         = '".$dep_range."',
    dep_master         = '".$dep_master."',
    dep_desc         = '".$dep_desc."',
    dep_pic         = '".$dep_pic."' 
where dep_id         = $dep_id";
//完整 sql 语句
$sql = "update zzl_dep_tbl set ".$update_dep;
删除(delete)
//接收字段值,这里是主键字段
$dep_id = $_REQUEST['dep_id'];
//sql 语句
$delete_dep = "dep_id = $dep_id";
$sql = "delete from zzl_dep_tbl where ".$delete_dep;

过程反思

最主要的问题是 sql 语句不熟悉,所以,很多次拼错 sql 语句。这个浪费的时间最多。
其次是 sql 中字段名和字段值类型的的修改,以及主键默认值的修改,也是一个问题

sql 语句

参考这两篇文章:Mysql 命令大全MySQL学习笔记10:修改数据

INSERT INTO table_name ( field1, field2,...fieldN )
                       VALUES
                       ( value1, value2,...valueN );

如果数据是字符型,必须使用单引号或者双引号,如:"value"。

举例:insert into person(id,name,sex,birth) values(6,'王芳','女',1992);
insert into 后面接表名和字段,此处的字段可调整位置,但一个必要条件是后面的values值必须与其字段对应

UPDATE table_name SET field1=new-value1, field2=new-value2
[WHERE Clause]

你可以同时更新一个或多个字段。
你可以在 WHERE 子句中指定任何条件。
你可以在一个单独表中同时更新数据。

DELETE FROM table_name [WHERE Clause]

如果没有指定 WHERE 子句,MySQL表中的所有记录将被删除。
你可以在 WHERE 子句中指定任何条件。
您可以在单个表中一次性删除记录。

SELECT column_name,column_name
FROM table_name
[WHERE Clause]
[OFFSET M ][LIMIT N]

查询语句中你可以使用一个或者多个表,表之间使用逗号(,)分割,并使用WHERE语句来设定查询条件。
SELECT 命令可以读取一条或者多条记录。
你可以使用星号(*)来代替其他字段,SELECT语句会返回表的所有字段数据。
你可以使用 WHERE 语句来包含任何条件。
你可以通过OFFSET指定SELECT语句开始查询的数据偏移量。默认情况下偏移量为0。
你可以使用 LIMIT 属性来设定返回的记录数。

获取某个数据集中,某个字段的值

dep_get_info.php 中,通过$rs = Base::getSingleRs($sql);获取了单行数据集
然后,通过下面代码,获取该记录中 dep_range 字段的值

echo $rs['dep_range'];

相关文章推荐: