php sql 今年的数据,phpGrace 数据库操作

phpGrace Db 概述phpgrace db 操作类以pdo为基础、全面采用预处理机制、最大程度保证了数据操作的安全性。采用了单利模式,保证一库一连、一表一对象!为高效开发提供了基础。

大部分的数据操作都无需编写复杂的sql命令,简单配置即可。

准备工作:数据库信息配置

使用数据库操作前,请打开保证数据库配置正确!具体操作见上一节 ^_^

数据操作详解下文将以数据表 persons为例,数据结构 :字段类型长度作用idint10主键自动增加

namevachar20姓名

ageint4年龄

addtimeint11添加时间

classidint10班级id 索引

增加数据 add($data)

功能:向数据表内写入数据。

参数:数值形式的数据对象(键名称对应数据表的字段名)

返回:写入数据对应的主键数据值<?php

class indexController extends grace{

public $tableName = 'persons';

public function index(){

$addData  = array('name' => 'grace', 'age' => mt_rand(10, 200));

$personId = $this->db->add($addData);

if($personId){

echo '写入数据成功,主键:'.$personId;

echo '
'.$this->db->getSql();

}else{

echo '
'.$this->db->error();

}

}

}

获取最近一次执行的操作命令 getSql()

功能:获取最近一次执行的操作命令

参数:无

返回:最近一次执行的操作命令

设置条件 where($where, $whereData)

功能:设置sql条件(预处理机制)

参数:1、条件(使用 ? 作为展位符)2、条件占位符对应的数值(数组格式)

删除数据 delete()

功能:删除一条或者多条符合条件的数据

参数:无

返回:true / false<?php

class indexController extends grace{

public $tableName = 'persons';

public function index(){

$this->db->where('id = ?', array(1))->delete();

}

}

更新数据 update()

功能:更新符合条件的数据

参数:更新数据(数组格式,键名称对应数据表的字段名)<?php

class indexController extends grace{

public $tableName = 'persons';

public function index(){

$data = array('name' => 'phpGrace');

$this->db->where('id = ?', array(2))->update($data);

}

}

对指定的字段进行递加或递减 field()

参数:1、字段名称 2、递加值 (正数递加,负数递减)<?php

class indexController extends grace{

public $tableName = 'persons';

public function index(){

$this->db->where('id = ?', array(2))->field('age', 1);

}

}

获取单条数据 fetch()

功能:获取单条数据

参数:查询字段(可省参数,默认 *)

返回:查询成功返回数组形式的数据,失败返回空(可以使用empty函数判断)

说明:可以配合条件进行查询$arr = $personModel->where('id = ?', array(2))->fetch();

print_r($arr);

获取多条数据 fetchAll()

功能:获取多条数据

参数:查询字段(可省参数,默认 *)

返回:查询成功返回数组形式的数据,失败返回空(可以使用empty函数判断)

说明:可以配合条件、排序、分页等方法进行查询<?php

class indexController extends grace{

public $tableName = 'persons';

public function index(){

$data = $this->db->fetchAll();

p($data);

}

}

查询排序 order()

功能:设置排序规则

参数:排序规则$data = $this->db->order('id desc')->fetchAll();

查询数据截取 limit($start, $num)

功能:设置limit,截取数据

参数:1、起始位置, 2、数据条目数$data = $this->db->order('id desc')->limit(0, 10)->fetchAll();

执行自定义的sql命令 query($sql, $execute)

参数:1、sql命令(如果有条件推荐使用展位符 ?), 2、占位符对应的数据(可省参数,sql命令包含占位符时传递)$res = $this->db->query('delete from persons where id = ?', array(2));

print_r($res);

queryFetch 和 queryFetchAll()

功能:使用query()函数查询数据时后续的查询函数,queryFetch() 用于单条数据,queryFetchAll()用于多条数据。

参数:无

返回:对应的数据(数组形式)$this->db->query('select * from persons where id > ?', array(1));

$arr = $this->db->queryFetchAll();

print_r($arr);

使用join() 完成多表联合

参数:联合语句

示例表 classes 表结构字段类型长度idint10

class_namevarchar20<?php

class indexController extends grace{

public $tableName = 'persons';

public function index(){

$arr =  $this->db->join('as a left join '.sc('db','pre').'classes as b on a.classid = b.id')->fetchAll('a.*, b.class_name');

print_r($arr);

}

}

使用page()函数完成分页

参数:每页数据条目数(可省参数,默认 10条)

返回:数组格式的查询数据

格式:array(数据, 分页信息)<?php

$arr =  $this->db->page(1)->fetchAll();

print_r($arr);

获取sql错误方法 error()echo $this->db->error();

获取原生的pdo操作对象 getDb()$pdo =  $this->db->getDb();

var_dump($pdo);

计算数据条目总数 count()$count =  $this->db->count();

echo $count;

指定字段的数据最大值 max(字段)$max =  $this->db->max('age');

echo $max;

指定字段的数据最小值 min(字段)$min =  $this->db->min('age');

echo $min;

指定字段的数据平均值 avg(字段)$avg =  $this->db->avg('age');

echo $avg;

指定字段的数据总和 sum(字段)$sum =  $this->db->sum('age');

echo $sum;

获取写入数据的主键值 lastInsertId()$res =  $this->db->add(array('name' => 'grace', 'age' => 18, 'addtime' => 10585888, 'classid' => 1));

echo $this->db->lastInsertId();

获取操作影响的数据条目数 rowCount()$res =  $this->db->where('id delete();

echo $this->db->rowCount();

group by//原始语句

select count('a.*'),  b.class_name from persons as a left join classes as b on a.classid = b.id group by a.classid ;

//代码实现:

$res = $this->db

->join('as a left join '.sc('db', 'pre').'classes as b on a.classid = b.id')

->group('a.classid')

->fetchAll("count('a.*') as total, b.class_name");

echo $this->db->getSql().'--';

print_r($res);

获取mysql版本 mysqlV()echo $this->db->mysqlV();

表结构分析$res = $this->db->desc();

print_r($res);

使用 debugSql 在控制台内输出执行的 sqlpublic function index(){

$db = db('names');

$db->fetchAll();

// 在执行sql 后调用 debugSql 即可在控制台内输出刚刚执行的sql 命令

$db->debugSql();

$db->fetchAll("name");

// 在执行sql 后调用 debugSql 即可在控制台内输出刚刚执行的sql 命令

$db->debugSql();

}

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值