#核心操作
数据库查询构造器 (query builder) 提供方便、流畅的接口,用来建立及执行数据库查找语法。在你的应用程序里面,它可以被使用在大部分的数据库操作,而且它在所有支持的数据库系统上都可以执行。
HDPHP 框架的 CURD 的自由度超过你的想象,当开启 DEBUG 模式后,所有 SQL 语句问题均会在页面中显示,一目了然。
> 注意: HDPHP 查询构造器使用 PDO 参数绑定,以保护应用程序免于 SQL 注入,因此传入的参数不需额外转义特殊字符。
###预准备操作
HDPHP支持使用预准备查询,可以完全避免SQL注入。
**修改操作**
```
Db::execute("update news set total=:total where id=:id",[':total'=>5,':id'=>1]);
```
**查询操作**
使用标识名
```
Db::query("select * from site where siteid=:siteid AND name=:name",
[':siteid'=>36,':name'=>'后盾']);
```
使用占位符
```
Db::query("select * from news where title like ?",['%后盾网%'])
```
##常用操作
**查找**
下面是使用原生 SQL 语句进行查询,更灵活的方式请查看 查询构造器 部分
```
Db::table('user')->where('id','>',1)->get();
```
**新增**
```
Db::table('user')->insert(['username'=>'向军','qq'=>'2300071698']);
//数组数据会过滤掉非法字段
```
**替换**
```
Db::table('user')->replace(['id'=>1,'username'=>'向军','qq'=>'2300071698']);
//如果字段中有主键或唯一索引,并且数据存在,replace操作将执行替换当前记录的操作
```
**添加并获取自增主键**
如果数据表有自动递增的ID,可以使用 insertGetId 添加数据并返回该 ID
```
Db::table('user')-> insertGetId(['username'=>'向军','qq'=>'2300071698']);
```
**更新**
```
Db::table('user')->where("id",1)->update(['username'=>'后盾网']);
//数组数据会过滤掉非法字段
```
**删除**
```
Db::table('user')->where('id',1)->delete();
//删除指定的主键值
Db::table('user')->delete(1);
Db::table('user')->delete([2,3,5]);
```
**自增一个字段值**
将total字段值加2
```
Db::table("user")->where('id',1)->increment('total',2);
```
**自减一个字段值**
```
Db::table("user")->where('id',1)->decrement('total',2);
将total字段减少2
```
**获取自增主键**
```
$db = Db::table( 'news' );
$db->insert( [ 'title' => '后盾网' ] );
echo $db->getInsertId();
```
**获取受影响条数**
```
$db = Db::table( 'news' );
$db->update( [ 'title' => '后盾人' ] );
echo $db->getAffectedRow();
```
- 基础
- 框架特性
- 开发规范
- 许可协议
- 安装
- 伪静态
- 作者
- 更新日志
- 架构
- 入口文件
- 目录结构
- 系统常量
- 自动加载
- 应用目录
- 配置
- 设置配置
- 检测配置
- 获取配置
- 配置文件
- 扩展配置
- c 函数
- 函数
- 工具函数
- 控制器
- 定义
- 空方法
- 基本访问
- 路由
- 基础路由
- 控制器路由
- 路由参数
- 参数检测
- 分组路由
- RESTful
- 数据库
- 配置
- 核心操作
- 查询构造器
- 表操作
- 事务处理
- 函数
- 查询日志
- 模型
- 定义模型
- 模型动作
- 构建数据
- 模型验证
- 自动完成
- 自动过滤
- 字段映射
- 表单令牌
- 字段保护
- 视图模型
- 关联模型
- 魔术方法
- 视图
- 模板配置
- 模板文件
- 分配数据
- 请求响应
- 系统标签
- 扩展标签
- 缓存模板
- 模板继承
- 中间件与钩子
- 中间件
- 钩子
- 缓存
- 基础
- Mysql缓存
- 文件缓存
- 调试
- Trace
- 日志
- 调试模式
- 服务
- 介绍
- 创建服务
- 系统服务
- 自动完成
- 压缩&解压
- 自动验证
- 上传
- 字符串
- 响应
- 请求数据
- RBAC
- QQ整合登录
- 分页
- 邮件
- 语言
- 图像
- 生成静态
- 目录操作
- 数据处理
- curl
- 加密
- Cookie
- 验证码
- 购物车
- 备份
- 数组
- 支付宝
- xml
- 工具
- 云接口
- 前端组件
- 基本配置
- 列表框日期选择
- CSS 样式
- URL操作
- 数据验证
- 城市选择
- JSON处理
- 幻灯片
- checkbox滑动样式
- 消息框
- md5
- 模态框
- 上传表单样式
- 选择字体
- 剪贴板
- 上传图片
- 上传文件
- 拾色器 spectrum
- 列表框 select2
- 百度地图
- 二维码生成
- 表单提交
- 时间管理 moment
- 加载动画
- 百度编辑器
- Cookie操作
- 图标库 font-awesome
- emotion表情
- domReady
- 日期 datetimepicker
- 日期区间列表 daterangepicker
- 日期区间 daterangepicker
- 时间 clockpicker
- 图表
- 光标控制 caret
- 表单验证 bootstrapValidator
- 微信
- 配置项
- 绑定开发者
- 获取access_token
- 网页授权获取用户基本信息
- 微信支付
- 微信红包
- 用户管理
- 二维码
- 回复消息
- 消息管理
- 素材管理
- 会员组管理
- 事件管理
- 消息群发
- 客服
- 自定义菜单
- 菜单管理
- 菜单事件
- 附录
- 升级环境
- HTTP 状态码
- GIT 命令