在 ThinkPHP 框架中,
think\Db
是数据库操作的核心类,提供了简洁的数据库操作接口。以下是一些常用的 think\Db
操作示例:1. 基本查询
php
// 查询单条数据
$user = Db::table('user')->where('id', 1)->find();// 查询多条数据
$users = Db::table('user')->where('status', 1)->select();// 查询某个字段值
$name = Db::table('user')->where('id', 1)->value('name');// 查询某列值集合
$ids = Db::table('user')->where('status', 1)->column('id');
2. 新增数据
php
// 插入单条数据
$data = ['name' => '张三','age' => 20,'email' => 'zhangsan@example.com'
];
$insertId = Db::table('user')->insertGetId($data);// 插入多条数据
$list = [['name' => '李四', 'age' => 22],['name' => '王五', 'age' => 25]
];
$count = Db::table('user')->insertAll($list);
3. 更新数据
php
// 更新数据
$row = Db::table('user')->where('id', 1)->update(['name' => '张三三', 'age' => 21]);// 自增操作
Db::table('user')->where('id', 1)->setInc('age', 1);// 自减操作
Db::table('user')->where('id', 1)->setDec('score', 10);
4. 删除数据
php
// 删除数据
$row = Db::table('user')->where('id', 1)->delete();// 清空表
Db::table('user')->truncate();
5. 链式操作
php
// 复杂查询示例
$users = Db::table('user')->alias('u')->join('profile p', 'u.id = p.user_id')->where('u.status', 1)->where('u.age', '>', 18)->field('u.id, u.name, p.birthday')->order('u.id', 'desc')->limit(10)->select();
6. 原生 SQL
php
// 执行原生查询
$users = Db::query('SELECT * FROM user WHERE status = ?', [1]);// 执行原生写入
$row = Db::execute('UPDATE user SET name = ? WHERE id = ?', ['张三', 1]);
7. 事务操作
php
// 启动事务
Db::startTrans();
try {// 执行操作Db::table('user')->where('id', 1)->update(['money' => 100]);Db::table('log')->insert(['user_id' => 1, 'action' => '充值']);// 提交事务Db::commit();
} catch (\Exception $e) {// 回滚事务Db::rollback();
}
使用时需要先引入
think\Db
类:
php
use think\Db;
这些是
think\Db
的常用操作,通过链式调用可以组合出各种复杂的查询条件,满足不同的业务需求。