StartMVC开发手册

可以快速上手的开发文档

手册目录

助手函数db()使用

调用数据库除了静态调用Db::table()外,还可以直接使用助手函数db()调用,使用方法如下:

基本查询:

db('user')->where('id', 1)->first(); // 查询单条记录
db('user')->where('status', 1)->get(); // 查询多条记录
db('user')->select('id,name')->where('age', '>', 18)->get(); // 指定字段查询

数据操作:

// 插入数据
db('user')->insert(['name' => '张三', 'email' => 'test@example.com']);
db('user')->insert([['name' => '李四'], ['name' => '王五']]); // 批量插入

// 更新数据
db('user')->where('id', 1)->update(['name' => '张三三']);

// 删除数据
db('user')->where('id', 1)->delete();

条件查询:

db('user')->where('age', '>', 18)->get(); // 大于条件
db('user')->where('name', 'like', '%张%')->get(); // LIKE查询
db('user')->where('id', 'in', [1,2,3])->get(); // IN查询
db('user')->where('age', 'between', [18,30])->get(); // BETWEEN查询
db('user')->where('status', 1)->where('age', '>', 18)->get(); // 多条件

聚合查询:

db('user')->count(); // 统计记录数
db('user')->where('status', 1)->sum('score'); // 求和
db('user')->max('age'); // 最大值
db('user')->min('age'); // 最小值
db('user')->avg('score'); // 平均值

排序和分页:

db('user')->orderBy('created_at', 'desc')->get(); // 排序
db('user')->limit(10)->get(); // 限制数量
db('user')->page(20, 1)->get(); // 分页:每页20条,第1页

表连接:

db('user')->leftJoin('profile', 'user.id', 'profile.user_id')->get();
db('user')->innerJoin('order', 'user.id', 'order.user_id')->get();

自定义配置:

$config = ['host' => 'localhost', 'database' => 'test', ...];
db('user', $config)->where('id', 1)->get(); // 使用自定义配置

链式调用:

db()->table('user')->where('id', 1)->get(); // 不指定表名的链式调用
db('user')->select('id,name')->where('status', 1)->order('id')->limit(10)->get();

辅助功能:

Db::is_table('user'); // 检查表是否存在
db('user')->is_table(); // 实例方法检查表
$pdo = db()->getPdo(); // 获取原生PDO对象

实际应用示例:

用户管理:

// 用户登录验证
$user = db('user')->where('email', $email)->where('password', md5($password))->first();

// 获取活跃用户
$users = db('user')->where('status', 1)->orderBy('last_login', 'desc')->limit(20)->get();

// 更新登录时间
db('user')->where('id', $userId)->update(['last_login' => date('Y-m-d H:i:s')]);

文章管理:

// 获取已发布文章

$articles = db('article')->where('status', 'published')->order('created_at', 'desc')->page(10, $page)->get();

// 文章详情(带作者)
$article = db('article')
 ->leftJoin('user', 'article.author_id', 'user.id')
 ->select('article.*, user.name as author_name')
 ->where('article.id', $id)->first();

统计分析:

// 用户统计
$totalUsers = db('user')->count();
$activeUsers = db('user')->where('status', 1)->count();
$avgAge = db('user')->where('status', 1)->avg('age');

// 订单统计
$todayOrders = db('order')->where('created_at', '>=', date('Y-m-d'))->count();
$todayRevenue = db('order')->where('created_at', '>=', date('Y-m-d'))->sum('amount');