深圳全飞鸿
标题:
fastadmin的db::用法
[打印本页]
作者:
syant
时间:
2025-3-24 22:42
标题:
fastadmin的db::用法
在 FastAdmin 中,Db 是 ThinkPHP 提供的数据库操作类,常用于数据库查询、插入、更新、删除等操作。以下是一些 Db:: 类的常用方法,帮助你高效地进行数据库操作。
1. 查询方法
Db::table(): 选择数据库表
$result = Db::table('your_table')->select(); // 获取所有数据
复制代码
Db::name(): 快速指定表名,通常用于模型无关的操作
$result = Db::name('your_table')->where('id', 1)->find(); // 查询单条数据
复制代码
Db::select(): 获取多条数据
$result = Db::name('your_table')->where('status', 1)->select(); // 查询状态为1的所有数据
复制代码
Db::find(): 获取单条数据
$result = Db::name('your_table')->where('id', 1)->find(); // 查询ID为1的单条数据
复制代码
Db::column(): 获取某一列数据
$result = Db::name('your_table')->column('name'); // 获取所有'name'字段的值
复制代码
Db::count(): 获取记录数量
$count = Db::name('your_table')->where('status', 1)->count(); // 获取状态为1的记录数量
复制代码
Db::max(): 获取某列的最大值
$maxValue = Db::name('your_table')->max('price'); // 获取price列的最大值
复制代码
Db::min(): 获取某列的最小值
$minValue = Db::name('your_table')->min('price'); // 获取price列的最小值
复制代码
Db::avg(): 获取某列的平均值
$avgValue = Db::name('your_table')->avg('price'); // 获取price列的平均值
复制代码
Db::sum(): 获取某列的总和
$sumValue = Db::name('your_table')->sum('price'); // 获取price列的总和
复制代码
作者:
syant
时间:
2025-3-24 22:45
2. 插入与更新方法
Db::insert(): 插入一条数据
Db::name('your_table')->insert(['name' => 'John', 'age' => 30]); // 插入一条数据
复制代码
Db::insertAll(): 批量插入数据
$data = [
['name' => 'John', 'age' => 30],
['name' => 'Jane', 'age' => 25]
];
Db::name('your_table')->insertAll($data); // 批量插入数据
复制代码
Db::update(): 更新数据
Db::name('your_table')->where('id', 1)->update(['name' => 'John Doe']); // 更新ID为1的记录
复制代码
Db::setField(): 更新单个字段
Db::name('your_table')->where('id', 1)->setField('status', 1); // 更新ID为1的记录的status字段
复制代码
Db::inc(): 增加某字段的值
Db::name('your_table')->where('id', 1)->setInc('age', 1); // 将ID为1的记录的age字段值增加1
复制代码
Db::dec(): 减少某字段的值
Db::name('your_table')->where('id', 1)->setDec('age', 1); // 将ID为1的记录的age字段值减少1
复制代码
作者:
syant
时间:
2025-3-24 22:48
3. 删除方法
Db::delete(): 删除数据
Db::name('your_table')->where('id', 1)->delete(); // 删除ID为1的记录
复制代码
Db::truncate(): 清空表中的所有数据
Db::name('your_table')->truncate(); // 清空整个表的数据
复制代码
4. 事务管理
Db::startTrans(): 开始事务
Db::startTrans();
复制代码
Db::commit(): 提交事务
Db::commit();
复制代码
Db::rollback(): 回滚事务
Db::rollback();
复制代码
5. 链式查询方法
FastAdmin 和 ThinkPHP 支持链式操作,可以链式调用多个查询方法:
where(): 添加查询条件
Db::name('your_table')->where('status', 1)->where('age', '>', 18)->select(); // 多个查询条件
复制代码
order(): 排序
Db::name('your_table')->order('created_at', 'desc')->select(); // 按照创建时间降序排列
复制代码
limit(): 设置查询返回的数据条数
Db::name('your_table')->limit(10)->select(); // 获取前10条记录
复制代码
group(): 分组
Db::name('your_table')->group('status')->select(); // 按照status字段分组
复制代码
having(): 设置 having 查询条件
Db::name('your_table')->having('sum(price) > 1000')->select(); // 按照聚合函数过滤
复制代码
join(): 连接查询
Db::name('your_table')
->alias('a')
->join('another_table b', 'a.id = b.id')
->where('a.status', 1)
->select();
复制代码
6. 获取原生 SQL 查询
有时你可能想查看执行的 SQL 语句,可以通过 getLastSql() 方法获取:
$sql = Db::name('your_table')->where('status', 1)->select()->getLastSql();
echo $sql; // 打印 SQL 查询
复制代码
总结
Db:: 类提供了丰富的数据库操作方法,包括查询、插入、更新、删除、事务管理等功能。你可以使用链式操作将多个方法组合在一起,进行更加灵活的查询和数据操作。
常用的方法包括:
查询类: select(), find(), column(), count(), max(), min(), avg(), sum()
数据操作类: insert(), insertAll(), update(), setField(), setInc(), setDec()
删除类: delete(), truncate()
事务类: startTrans(), commit(), rollback()
链式操作: where(), order(), limit(), group(), having(), join()
这些方法帮助你在 FastAdmin 中高效地与数据库交互,简化开发过程。
作者:
syant
时间:
2025-3-24 23:10
Db::execute("SELECT 1");
作者:
syant
时间:
2025-3-24 23:11
try {
$result = Db::query("SHOW CREATE TABLE `" . $prefix . $name . "`;");
if (isset($result[0]) && isset($result[0]['Create Table'])) {
$createTableSql = $result[0]['Create Table'];
}
} catch (PDOException $e) {
}
作者:
syant
时间:
2025-3-24 23:13
直接使用 Db::table 方法:与 Db::name 不同,Db::table 方法要求传入完整的表名(包括前缀),因此不会自动添加前缀。例如:
Db::table('r_wo_ext')->where(['id'=>1])->select();
复制代码
欢迎光临 深圳全飞鸿 (http://www.nagomes.com/disc/)
Powered by Discuz! X3.2