php手记之04-tp5数据库操作
//--------查询
// 原生sql语句查询
// $ret = Db::query("select * from tp5_user where id>10");
// dump($ret); // 占位写法 // 单个参数
// $sql = "select * from tp5_user where id=?";
// $ret = Db::query($sql,[1]); // $sql = "select * from tp5_user where id=:id";
// $ret = Db::query($sql,['id'=>1]); // 多个条件
// $sql = 'select * from tp5_user where name=:name and id=:id';
// $ret = Db::query($sql,['name'=>'zhangsan','id'=>2]);
// dump($ret); // db查询一条数据
// $ret = db('user')->find(10);
// dump($ret); // db查询多条数据
//所有数据
// $ret = db('user')->select(); // 条件查询
// $ret = db('user')->where('status',0)->select();
// 查不到会抛出异常
// $ret = db('user')->where('status',0)->selectOrFail(); # 查询某个字段的值可以用
// $ret = db('user')->where('status',0)->value('name'); # 查询某一列的值可以用
// $ret = Db::name('user')->where('id',10)->column('name');
// $ret = Db::name('user')->column('name'); # 排序并获取指定记录条数
// $ret = Db::name('user')->order('id', 'desc')->limit(0,10)->select(); # 聚合查询
// Db::name('user')->count();
// Db::name('user')->max('score');
// Db::name('user')->where('score', '>', 0)->min('score');
// Db::name('user')->avg('score');
// Db::name('user')->where('id',10)->sum('score'); # 批量条件(字段)查询
// $map = [
// ['name', 'like', '%tp%'],
// ['age', '>', '10'],
// ['id', '>', 0],
// ];
// $ret = Db::name('user')
// ->where([ $map ])
// ->where('status',1)
// ->select(); # 闭包查询
// $name = '%tp%';
// $age = 10;
// $ret = Db::table('tp5_user')->where(function ($query) use($name, $age) {
// $query->where('name','like' ,$name)->where('age', '>', $age);
// })->select(); # 获取器 5.1.20之后才有
$ret = Db::name('user')->withAttr('name', function($value, $data) {
return strtolower($value);
})->select(); dump($ret);
//--------增加
//插入数据
// $data = ['name'=>'liwu1','age'=>14];
// table需要写全表名
// $ret = Db::table('tp5_user')->insert($data);
// name不用写表前缀
// $ret = Db::name('user')->insert($data); // 推荐写法
// $ret = db('user')->insert($data);
// dump($ret); // 插入多条数据
// $data = [
// ['name'=>'liww','age'=>34],
// ['name'=>'li31','age'=>15],
// ['name'=>'lrty','age'=>16],
// ['name'=>'liii','age'=>24],
// ];
// $ret = db('user')->insertAll($data);
// dump($ret);
//--------修改
// 更新数据
// $data = ['name'=>'tp5','age'=>38];
// $ret = db('user')->where('id','=',1)->update($data); // 等号可以省略
// $ret = db('user')->where('id',1)->update($data); // $ret = db('user')->update($data);
//--------删除
// 删除数据
// 根据主键删除
// $ret = Db::name('user')->delete(1);
// $ret = Db::name('user')->delete('5,6');
// $ret = Db::name('user')->delete([2,3]); // 条件删除
// $ret = db('user')->where('id','>',13)->delete(); // 软删除
// $ret = db('user')->where('id','>',12)->useSoftDelete('delete_time',time())->delete(); // dump($ret); }
php手记之04-tp5数据库操作的更多相关文章
- tp5数据库操作 模型层
一.数据模型作用 相同功能代码不用重复写多次 二.创建方式 在模块下建立model文件夹,php文件,文件名为数据库表名,其中类为数据库表名,继承Model类,模型层即为此表 namespace ap ...
- tp5数据库操作 Db类
一.链接数据库 1.配置文件定义 application\database.php 注意:数据表前缀更改,在文件的prefix选项 2.类定义 二.数据库的基本使用 namespace app\de ...
- ThinkPHP5.0框架开发--第7章 TP5.0数据库操作
ThinkPHP5.0框架开发--第7章 TP5.0数据库操作 第7章 TP5.0数据库操作 ===================================================== ...
- TP5对数据库操作的事物作用
假如: 你写好了一段完整的代码,模型对数据库的操作,增删改查什么的,都没有问题,当然运行速度也是最快的,完全不用担心会出错, 前提肯定是已经写好的一整段代码, 但是,万一服务器中断了呢,执行一半,后面 ...
- 04:sqlalchemy操作数据库
目录: 1.1 ORM介绍(作用:不用原生SQL语句对数据库操作) 1.2 安装sqlalchemy并创建表 1.3 使用sqlalchemy对表基本操作 1.4 一对多外键关联 1.5 sqlalc ...
- 04:sqlalchemy操作数据库 不错
目录: 1.1 ORM介绍(作用:不用原生SQL语句对数据库操作) 1.2 安装sqlalchemy并创建表 1.3 使用sqlalchemy对表基本操作 1.4 一对多外键关联 1.5 sqlalc ...
- SQL 2005 中查询或执行另外的数据库操作的方法
原文:SQL 2005 中查询或执行另外的数据库操作的方法 摘要: 如果,你想在一台数据库服务器上,查询另一个台数据服务器的数据该如何做呢?如果,你想在同一台数据服务器上,在不同的数据库之间查询数据, ...
- 使用ado.net打造通用的数据库操作类
最近在项目中使用中碰到了这样一种情况,查询的数据是从Oracle中获取的,但是记录下来的数据是存在Sql Server中(企业Oracle数据库管理太严,没办法操作).而且我在之前的工作中也碰到过使用 ...
- TP5数据库操作方法
一.TP5数据库操作方法 1.name()方法作用 : 指定默认的数据表名(不含前缀)示例 : Db::name(‘weiba_post’);返回 : Db对象 2.setTable()方法作用 : ...
- 05:ModelForm 数据验证 & 生成html & 数据库操作
目录:Django其他篇 01:Django基础篇 02:Django进阶篇 03:Django数据库操作--->Model 04: Form 验证用户数据 & 生成html 05:Mo ...
随机推荐
- py 并发编程(线程、进程、协程)
一.操作系统 操作系统是一个用来协调.管理和控制计算机硬件和软件资源的系统程序,它位于硬件和应用程序之间. 程序是运行在系统上的具有某种功能的软件,比如说浏览器,音乐播放器等.操作系统的内核的定义:操 ...
- Django中使用geetest验证
一.geetest的使用方法 首先需要在setting中配置好文件 GEE_TEST = { "gee_test_access_id": "37ca5631edd1e88 ...
- Educational Codeforces Round 41 967 E. Tufurama (CDQ分治 求 二维点数)
Educational Codeforces Round 41 (Rated for Div. 2) E. Tufurama (CDQ分治 求 二维点数) time limit per test 2 ...
- JDBC课程2--实现Statement(用于执行SQL语句)--使用自定义的JDBCTools的工具类静态方法,包括insert/update/delete三合一
/**JDBC课程2--实现Statement(用于执行SQL语句) * 1.Statement :用于执行SQL语句的对象: * 1): 通过Connection 的createStatement( ...
- 容器上使用Docker还是Rocket?为什么不一起用呢?
在2014年接近尾声时,CoreOS在Docker发布了Rocket,声称Docker的流程模型有着“根本性的缺陷”.虽然CoreOS的创始人Alex Polvi尽量缓和语气,但是他坚持自己的基本观点 ...
- 通过supervisor自启动kafka服务
一.supervisor安装:echo_supervisord_conf > /etc/supervisord.conf 二.生成基础配置:vi /etc/supervisord.conf最后添 ...
- postgresql学习笔记--基础篇
1. 客户端程序和服务器端程序 1.1 客户端程序 Command Example Describe clusterdb clusterdb -h pghost1 -p 1921 -d mydb Cl ...
- CF277B Set of Points——构造题
题意 构造 $n$ 个点使其凸度(顶点数最多的凸多边形的顶点数)恰好为 $m$,且任意三点不能共线. (题意有点绕,建议看英文原文 分析 首先,题目并不是求凸包上的顶点数,而是求能形成的凸多边形的最大 ...
- 使用unittest测试(基础一)
#导入unittest单元测试框架 ##用例的方法前缀必须要以 test 开头的 #这是用来组织用例的 import unittest class TestDBQB(unittest.TestCase ...
- Spring Data JPA 提供的各种Repository接口作用
各种Repository接口继承关系: Repository : public interface UserRepository extends Repository<User, Integer ...