在 ThinkPHP 中,借助模型或者 Db 类来完成数据库的增删改查操作

发布时间:2025-05-13      访问量:38
在ThinkPHP中,数据库的增删改查操作通常借助模型或者Db类来完成。下面为你介绍一些常见的操作语句:

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。
堆内存
多线程
strdup
初始化器
冒泡排序
增删改查
BufferedReader
输入输出
面向对象
生命周期
闭包的概念
原型链
Flask
mysql-connector-python
单例模式
浅拷贝
隔离级别
索引
InnoDB
左连接
聚合函数
PuTTY
TRUNCATE
str_starts_with_many
DateTime
array_combine
闭包的概念