1. 查询数据
使用模型查询
php
// 获取单条记录
$user = User::find(1); // 根据主键ID查询
$user = User::where('name', '张三')->find(); // 条件查询单条
// 获取多条记录
$users = User::select(); // 获取所有记录
$users = User::where('age', '>', 18)->select(); // 条件查询多条
$users = User::order('id', 'desc')->limit(10)->select(); // 排序和分页
// 分页查询
$users = User::paginate(10); // 每页10条记录
使用Db类查询
php
use think\facade\Db;
// 单表查询
$user = Db::name('user')->where('id', 1)->find();
$users = Db::name('user')->where('status', 1)->select();
// 多表关联查询
$list = Db::table('user u')
->join('profile p', 'u.id = p.user_id')
->field('u.*, p.avatar')
->select();
2. 插入数据
使用模型插入
php
$user = new User;
$user->name = '李四';
$user->age = 25;
$user->save(); // 返回布尔值
// 批量插入
$data = [
['name' => '王五', 'age' => 30],
['name' => '赵六', 'age' => 22]
];
User::saveAll($data);
使用Db类插入
php
// 单条插入
$result = Db::name('user')->insert([
'name' => '李四',
'age' => 25
]);
// 批量插入
$result = Db::name('user')->insertAll([
['name' => '王五', 'age' => 30],
['name' => '赵六', 'age' => 22]
]);
3. 更新数据
使用模型更新
php
$user = User::find(1);
$user->name = '新名字';
$user->save();
// 批量更新
User::where('age', '<', 18)->update(['status' => 0]);
使用Db类更新
php
// 更新单条记录
$result = Db::name('user')
->where('id', 1)
->update(['name' => '新名字', 'age' => 26]);
// 自增自减
Db::name('user')->where('id', 1)->inc('age')->update(); // 年龄加1
Db::name('user')->where('id', 1)->dec('score', 5)->update(); // 分数减5
4. 删除数据
使用模型删除
php
// 根据主键删除
$user = User::find(1);
$user->delete();
// 批量删除
User::where('age', '>', 100)->delete();
使用Db类删除
php
// 删除单条记录
$result = Db::name('user')->where('id', 1)->delete();
// 批量删除
$result = Db::name('user')->where('status', 0)->delete();
// 删除所有记录(谨慎使用)
Db::name('user')->delete(true);
5. 其他常用操作
聚合查询
php
$count = User::count(); // 记录总数
$maxAge = User::max('age'); // 最大年龄
$avgScore = User::avg('score'); // 平均分数
链式操作
php
$users = User::where('age', '>', 18)
->where('status', 1)
->order('create_time', 'desc')
->limit(10)
->select();
注意事项
- 示例里的`User`代表的是模型类,你要依据自身项目的实际情况来替换成对应的模型。
- 条件查询时可以运用`where`方法的多种形式,像`whereIn`、`whereBetween`等。
- 进行数据库操作时,建议启用事务来保证数据的一致性。
- 为避免SQL注入问题,应当尽量使用ORM方法,而非直接书写原生SQL。