Think PHP第五节课:数据查询接口的实现

数据查询接口的实现

1、 这一次课也是进行数据的插入和查询

为了保存传感器上传的数据,我们设计了2张数据表

tom_sensorhistory

tom_sensorinfo

Think PHP第五节课:数据查询接口的实现

因为上面的教程已经交了如何创建表格,下面是表格的参数

1) 传感器的信息表

tom_sensorhistory

Think PHP第五节课:数据查询接口的实现

2) 传感器的历史表

tom_sensorinfo

Think PHP第五节课:数据查询接口的实现

2、 在本地的up上配置一下接口的数据

本地的物理地址:H:\UPUPW_AP7.0\htdocs\iot\Application\Weixin\Conf\config.php

Think PHP第五节课:数据查询接口的实现

需要和上一节课的config.php区分开来,解释也就不注释啦。

代码如下:

return array(
//'配置项'=>'配置值'
//全局的通用配置
'DB_TYPE'=>'mysql',
'DB_HOST'=>'localhost',
'DB_PORT'=>3306,
'DB_USER'=>'root',
'DB_PWD'=>'root',
'DB_NAME'=>'tomdb',
'DB_PREFIX'=>'tom_'
);

3、 打开路径H:\UPUPW_AP7.0\htdocs\iot\Application\Weixin\Controller\ IndexController.class.php

实现了数据上传的接口代码:

//传入一个数据
public function SensorDataPost($SensorID=0,$CurrentValue=0)
{
if(IS_POST ) //这里定义了传输的方式,GET是可以进行浏览器传输
{
//把传感器的值刷新SensorInfo表里面的CurrentValue
$Info=M('sensorinfo');
$data2=Array('CurrentValue'=>$CurrentValue,'UpdateTime'=>date('y-m-d h:i:s',time()));
$Info->where(array('SensorID'=>$SensorID)) ->save ($data2); //超级重要,我们只希望更新其中一条记录
//把传感器的值新增到SensorHistory
$History=M('sensorhistory');
$data=Array('SensorID'=>$SensorID,'SensorValue'=>$CurrentValue);
$code =$History->Add ($data); //受影响的记录总数,用于新增数据记录

if($code>0)
{
echo 'success';
}
else
{
echo 'fail2';
}
}
else
{
echo 'fail';
}
}

打开测试软件看看:

Think PHP第五节课:数据查询接口的实现

去数据库里面查看结果

Think PHP第五节课:数据查询接口的实现

4、 数据读回来又几个问题需要考虑

1) 数据的时间维度去考虑,最新的,且有限个数(查询当前)

2) 返回数据的总数,返回最新,返回某个时间段,数量是有限的。(分页查询)

5、 实现一个数据查询接口,可以返回整个表的所有记录

public function GetSensorData1() 

{
header('content-type:text/json;charset=utf-8');
//打开列表
$history=M('sensorinfo');
//读取列表
$result= $history->order('SensorID desc')->select();
//返回数据记录
echo json_encode($result,JSON_UNESCAPED_UNICODE);
}

调用数据接口返回数据

Think PHP第五节课:数据查询接口的实现

6、 如果只想返回一条记录,而不是整个表

//返回单个数据 

public function GetSensorData($SensorID=1)
{
//header('content-type:text/json;charset=utf-8');
//打开列表
$History=M('sensorhistory');
//$History=M('sensorinfo');
//读取列表
//$result= $history->select();
$result=$History->where(array('SensorID'=>$SensorID))->order('id DESC')->limit(1)->select();
//返回数据记录
echo json_encode($result,JSON_UNESCAPED_UNICODE);
//echo json_encode($result);
}

7、 上面这种"->"叫做连贯操作


分享到:


相關文章: