一、create

$article = new Model_Article();
// 或
$article = Model_Article::forge(); // 保存数据,返回新增数据 id
$article->save();
// 有时不方便设置自增 id,可手动添加
// 添加 properties
$article = Model_Article::forge();
$article->id = 'ha123';
$article->title = 'testtitle';
$article->save(); //或
$properity = array('id' => 'ha123', 'title' => 'testtitle');
$article = Model_Article::forge($properity);
$article->save();
// 框架封装的方法不一定满足,可以用 DB 类
$query = DB::insert('table_name', array('id', 'name')); $res = DB::query(sql)->bind()->execute();

二、update

// 编辑 id=3 的数据
$article = Model_Article::find(3);
// 设置数据
$article->title = 'edit_title';
$article->author = 'test';
// 执行 update
$article->save(); //或
$article = Model_Article::find(3);
$article->set(array('title' => 'edit_title', 'author' => 'test'));
$article->save();
$res = DB::update('table_name')->set(array())->execute();

$res = DB::query(sql)->bind()->execute();

三、delete

// 删除 id=3 的数据
$article = Model_Aricle::find(3);
$article->delete();
$res = DB::delete('table_name')->where()->execute();

$res = DB::query("sql")->bind()->execute();

四、read

// 根据 id 查
$article = Model_Article::find(2);
$article = Model_Article::find(array(2, 'foo')); // find first/last
$entry = Model_Article::find('first');
$entry = Model_Article::find('last', array('order_by' => 'date')); // find all
$entry = Model_Article::find('all');
$entry = Model_Article::find('all', array(
'where' => array(
array('category_id', 1),
),
'order_by' => array('date' => 'desc'),
));
$entry = Model_Article::find('all', array(
'where' => array(
array('category_id', 1),
'or' => array(
array('category_id', 2),
),
),
));
$user = DB::select('id', 'name')->from('users')->where('id', 1)->execute();

$user = DB::select_array(array('id', 'name'))->execute();

$user = DB::query("sql")->bind()->execute();

五、其他

1、sql 绑定变量:

$title = ’iat001’;
//绑定变量
$result = DB::query("SELECT * FROM articles WHERE title = :title")->bind(’title’, $title)->execute();
//直接赋值
$result = DB::query("SELECT * FROM articles WHERE title = :title")->param(’title’, ’iat001’)->execute();
//绑定多个参数
$result = DB::query("SELECT * FROM articles WHERE title = :title AND body = :body")->parameters(array(’title’ => $title, ’body’ => ’body001’))->execute();

2、数据 cache

//cached() 三个参数:缓存时间、缓存文件、是否存空值
$result = DB::query("SELECT * FROM articles")->cached(3600, "articles", false)->execute();
// 删除 articles 缓存文件
Cache::delete("articles");
// 删除 db 目录下的所有缓存
Cache::delete_all("db");

3、事务

try {
//事务开始
DB::start_transaction();
$result = DB::insert(’articles’)->set(array(’title’ => ’iat001’, ’body’ => ’body001’))->execute();
// 自定义返回信息
DB::escape('ERROR:' . $msg);
// 事务结束
DB::commit_transaction();
} catch(Exception $e) {
// 事务回滚
DB::rollback_transaction();
// 回滚提示信息
$e->getMessage();
}

4、链式操作

// order_by
$query = Model_Article::query()->where('category_id', 1)->order_by('date', 'desc');
// count
$number_of_articles = $query->count();
// max
$number_of_articles = $query->max('id');
// min
$number_of_articles = $query->min('date');
// get_one
$newest_article = $query->get_one();
// limit
$all_articles = $query->limit(15)->get();
// to_array() 转换为数组
$entry = Model_Article::query()->where('id', '=', 8)->get_one()->to_array(true, true); $entry = Model_Article::query()->select('name', 'date')->get();

FuelPHP 系列(六) ------ CURD 增删改查的更多相关文章

  1. C# 数据操作系列 - 15 SqlSugar 增删改查详解

    0. 前言 继上一篇,以及上上篇,我们对SqlSugar有了一个大概的认识,但是这并不完美,因为那些都是理论知识,无法描述我们工程开发中实际情况.而这一篇,将带领小伙伴们一起试着写一个能在工程中使用的 ...

  2. 微软Connect教程系列--自动生成增删改查页面工具介绍(二)

    本章课程描述了vs2015的三个特点,其中主要将描述在vs2015下面,使用命令自动生成增删改查界面,具体如下: 1.web.config文件不在存在,用config.json替代,以适应支撑vs的插 ...

  3. Mysql学习笔记(六)增删改查

    PS:数据库最基本的操作就是增删改查了... 学习内容: 数据库的增删改查 1.增...其实就是向数据库中插入数据.. 插入语句 insert into table_name values(" ...

  4. python 10min系列之实现增删改查系统

    woniu-cmdb 奇技淫巧--写配置文件生成增删改查系统 视频教程 项目主页跪求github给个star, 线上demo,此页面都是一个配置文件自动生成的 详细的文章介绍和实现原理分析会发布在我的 ...

  5. .Net程序员学用Oracle系列(12):增删改查

    1.插入语句 1.1.INSERT 1.2.INSERT ALL 2.删除语句 2.1.DELETE 2.2.TRUNCATE 3.更新语句 3.1.UPDATE 3.2.带子查询的 UPDATE 3 ...

  6. 网络系列之 cookie增删改查(封装)

    什么是cookie 呢?简单来说,这个小东西,会记录你的 浏览器 浏览习惯,或 账号密码等, 以便于提高用户的体验感. 举个例子: 你们有没有发现,去淘宝一些购物网站, 你搜索了 椅子, 挑选了一会椅 ...

  7. MySQL的CURD 增删改查

    添加 insert 语法: 单条:insert into 表名('字段1', '字段2', ...) values('值1', '值2', ...) 多条:insert into 表名('字段1', ...

  8. ThinkPHP - CURD增删改查 - 实例 - 搜索功能

    模板代码: /** * 搜索数据 * @return 无返回值 */ public function search(){ //判断并接收参数 //姓名 if ( isset($_POST['usern ...

  9. ThinkPHP - CURD增删改查 - 实例

    目录结构:

随机推荐

  1. Java基础之多线程篇(线程创建与终止、互斥、通信、本地变量)

    线程创建与终止 线程创建 Thread类与Runnable接口的关系 public interface Runnable { public abstract void run(); } public ...

  2. Ubuntu无法连接WiFi

    lspci | grep Network1.查看自己的无线网卡驱动2.下载驱动https://www.intel.cn/content/www/cn/zh/support/articles/00000 ...

  3. spring 基于注解的@Scheduled和quartz定时器两种实现

    一.使用quartz 1.由于我的项目jar包使用的maven托管的,在pom文件中加入quartz的依赖就可以 2.配置quartz-context.xml,确保xml文件能被加载到 <?xm ...

  4. 201904Online Human Action Recognition Based on Incremental Learning of Weighted Covariance Descriptors

    论文标题:Online Human Action Recognition Based on Incremental Learning of Weighted Covariance Descriptor ...

  5. [06] JSTL标准标签库

    1.JSTL概述 之前在<[03-01] JSP自定义标签>中已经说明了自定义标签的概况,而JSTL也是一套标签库,不过是厂商已经定义好的标签库,我们不再需要自行进行定制,直接使用即可. ...

  6. 【原创】MVC +WebUploader 实现分片上传大文件

    大文件的上传是我一直以来想学习的一个技术点,今天在项目闲暇之时,终于有机会自己尝试了一把,本文仅仅是个Demo,各种错误处理都么有,仅限于大家来学习思路. 参考博文:http://www.cnblog ...

  7. BZOJ 2784 时间流逝

    BZOJ 2784 时间流逝 古典概率论... 可以发现由于能量圈数量限制,所以所构成的必定为树状结构(即便是转成最小能量圈和能量圈权值和之后存在重复状态,但是每个状态的含义不同,而且不能自身转移自身 ...

  8. Adobe PhotoshopCC2017 安装与破解(Mac)

    简单说明下Adobe Photoshop CC 2017的破解方法: 1.打开dmg镜像,双击“Install”进行安装,登陆Adobe ID(没有注册一个)完成安装: 2.解压缩“Adobe Zii ...

  9. odoo订餐系统之类型设计

    这次开发的模块是订餐的类型设计,比如大荤 小荤 蔬菜 米饭 等基本数据.1.设计model类,很简单就一个字段: class MyLunchProductionCategory(osv.Model): ...

  10. 【转】单KEY业务,数据库水平切分架构实践

    本文将以“用户中心”为例,介绍“单KEY”类业务,随着数据量的逐步增大,数据库性能显著降低,数据库水平切分相关的架构实践: 如何来实施水平切分 水平切分后常见的问题 典型问题的优化思路及实践 一.用户 ...