当前位置: 首页 > news >正文

在 ThinkPHP DB

在 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 的常用操作,通过链式调用可以组合出各种复杂的查询条件,满足不同的业务需求。
http://www.wxhsa.cn/company.asp?id=5931

相关文章:

  • 什么是网络+HTTP详解
  • 快速管理win系统上的用户
  • redis实现全局唯一id
  • 表格识别技术:“唤醒”沉睡在纸质文档中的海量结构化数据
  • 【大三下】资料,仅内部学习使用
  • fastboot工具的常见命令
  • 《软件需求最佳实践》阅读笔记一
  • 挖掘PDF生成器中的SSRF漏洞:从发现到利用
  • 做题记录 2
  • 计数原理与排列组合
  • 9.16动态用例设计方法 笔记
  • 深入解析:ESP32三种主流的开发环境
  • js
  • 9.16电商状态迁移图
  • c# ConcurrentDictionary
  • 核桃OJ【S组 第二轮】信息学竞赛10w选手模拟考
  • 第一次个人编程作业
  • 【初赛】软件系统 - Slayer
  • 漏洞详解--XXE 从入门到精通!
  • 数学分析习题课 note
  • 总结-CDQ 分治
  • 【初赛】计算机语言 - Slayer
  • 深入浅出RocketMQ客户端编程
  • Win10玩LOL弹窗
  • 洞察中国HR SaaS薪酬市场:2025企业数字化转型中的选型策略
  • 9.16 一些记录
  • Week 1 Homework
  • 溢出存储变量
  • retrieving repo key for OS unencrypted from
  • 3. Explain详解与索引最佳实践