FuelPHP 系列(六) ------ CURD 增删改查
一、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();
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 从 HTTP 原因短语缺失研究 HTTP/2 和 HTTP/3 的设计差异
· AI与.NET技术实操系列:向量存储与相似性搜索在 .NET 中的实现
· 基于Microsoft.Extensions.AI核心库实现RAG应用
· Linux系列:如何用heaptrack跟踪.NET程序的非托管内存泄露
· 开发者必知的日志记录最佳实践
· TypeScript + Deepseek 打造卜卦网站:技术与玄学的结合
· Manus的开源复刻OpenManus初探
· AI 智能体引爆开源社区「GitHub 热点速览」
· C#/.NET/.NET Core技术前沿周刊 | 第 29 期(2025年3.1-3.9)
· 从HTTP原因短语缺失研究HTTP/2和HTTP/3的设计差异