workday3~4
这两天算是把一个模块的功能做完了,功能是数据统计,即按输入的时间统计X小时各个服务器status的数量以及各个服务器的信息,学到了不少东西,为了避免忘记,先记录,有空再整理一下。
1.时间戳的问题
选择时区为中华人民共和国:date_default_timezone_set("PRC");
时间戳转换成标准时间格式:$standardTime = date("Y-m-d H:i:s",$time);
标准时间格式转换为时间戳:$time = strtotime($time)
2.用session来做php缓存
有些时候需要频繁读取数据库的数据,为了避免重复读取可以采用缓存
存 $_SESSION['user']= "caimuqing"
取 $_SESSION['user']
删除session里面的某些数据 unset($_SESSION['user'])
请教了下师兄,师兄建议用redis作为缓存,另外文件也是可以,有空研究一下
3.由于php版本的升级,所有对数据库的操作mysql都改为,mysqli
4.记录一下php连接数据库的方法
public static function connectDb(){
$con = mysqli_connect("localhost","root","basketball");
if(!$con){
die('could not connect ');
}
return $con;
}
5.创建表
public static function createTempTable()
{
self::dropTempTable();
$con = self::connectDb();
mysqli_select_db($con,self::$db_name);
$sqlCreate = "CREATE TABLE `tmp_check_success` (
`id` int NOT NULL AUTO_INCREMENT ,
PRIMARY KEY (`id`),
`count_success` varchar() NULL,
`count_1` varchar() NULL,
`count_11` varchar() NULL,
`count_3` varchar() NULL,
`count_5` varchar() NULL);";
mysqli_query($con,$sqlCreate);
}
6删除表
public static function dropTempTable(){
$con = self::connectDb();
mysqli_select_db($con,self::$db_name);
$sql = "DROP TABLE IF EXISTS tmp_check_success;";
mysqli_query($con,$sql);
}
7.简单查询
public static function getVasStatus(){
$con = self::connectDb();
mysqli_select_db($con,self::$db_name);
$allStatus = array(array());
$oneRow = array();
$sql = "SELECT * FROM `tmp_check_success`;";
$result = mysqli_query($con,$sql);
while($row = mysqli_fetch_array($result)){
$oneRow['id'] = $row[0];
$oneRow['count_success'] = $row[1];
$oneRow['count_1'] = $row[2];
$oneRow['count_11'] = $row[3];
$oneRow['count_3'] = $row[4];
$oneRow['count_5'] = $row[5];
$allStatus[] = $oneRow;
}
return $allStatus;
}
8.php往数组里面插入数据可以用
array_push($resultDetail,$oneRow);
$resultDetail是一个插入的目的地,$oneRow是带插入值
9.mvc模式的一些理解
就是model view controller
model是指业务逻辑层,基本所有对数据库的操作都会在这一层完成,可以构建class来完成
controller是指控制层,相当于遥控器,指挥完成相应的行为,其本身写的较为简洁,一切交给model来存取数据,可以调用class的方法,本身不写函数
view是视图层,就是展示控制层传送过来的数据
这三层可以分工独立完成的
10:Thinkphp是用smarty做模板引擎的,做完这个项目好好研究一下TP
workday3~4的更多相关文章
随机推荐
- JAVA中线程的状态
java thread的运行周期中, 有几种状态, 在 java.lang.Thread.State 中有详细定义和说明: NEW:至今尚未启动的线程的状态. RUNNABLE:可运行线程的线程状态. ...
- TCP协议简介
1.TCP协议的特点 TCP是面向连接的运输层协议 每一条TCP连接只能有两个端点.TCP只能进行点对点通信 TCP提供可靠交付的服务.通过TCP连接传输的数据,无差错.不丢失.不重复.并且按序到达 ...
- Oracle 12C 新特性之 PDB热克隆(本地克隆、远端异机克隆)
说明:版本12.2.0.1 12c r1版本中 clone 一份PDB源库需要打开在read only只读模式 , 在12c r2版本中引入了local undo mode, 源PDB在read/wr ...
- 初次尝试Linux并记录一二
假如我有一个Linux系统 安装过程:加载中... 版本:Ubuntu Server 16.04.1 LTS 64位 得到一个IP:*.*.*.* 下载工具 WinSCP: WinSCP是一个Wind ...
- Day1-模块初识
模块,也叫库,分为标准库和第三方库.标准库,直接导入使用,比如import getpass:第三方库,需下载安装才能使用,比如paramiko: 一.sys模块 import sys print(sy ...
- 求数组的最小数、最大值,求一组数的平均数,sort函数详解,类数组转数组
求数组的最小值和最大值 //求数组当中最大值和最小值 var arr=[3,2,6,1,45,23,456,23,2,6,3,45,37,89,30]; //第一种方法 根据排序方法来求最大值和最小值 ...
- Java字节码—ASM
前言 ASM 是什么 官方介绍:ASM is an all purpose Java bytecode manipulation and analysis framework. It can be u ...
- 走进javascript——数组的那些事
Array构造器 如果参数只有一个并且是Number类型,那么就是指定数组的长度,但不能是NaN,如果是多个会被当做参数列表. new Array(12) // (12) [undefined × 1 ...
- 弹出框插件layer使用
layer是一款近年来备受青睐的web弹层组件,她具备全方位的解决方案,致力于服务各水平段的开发人员,您的页面会轻松地拥有丰富友好的操作体验. 插件官方地址:http://layer.layui.co ...
- SQL Server 中函数的理解总结
T-SQL语言为我们提供了更加灵活的方式操作数据,那就是函数,函数总的分为三大类:标量函数:(传入一个参数,再传出一个参数)聚合函数(传入多个参数,传出一个参数),表值函数(传入一个结果集对象,让我们 ...