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 ...
随机推荐
- Source Insight用法
快捷键 Symbol: Browse Project Symbols-:F7, Alt+G Relation View Relationship->For Functions->Pefer ...
- apache ftp server 设置
<server xmlns="http://mina.apache.org/ftpserver/spring/v1" xmlns:xsi="http://www.w ...
- 基于SpringBoot的多模块项目引入其他模块时@Autowired无法注入其他模块stereotype注解类对象的问题解决
类似问题: 关于spring boot自动注入出现Consider defining a bean of type 'xxx' in your configuration问题解决方案 排查原因总结如下 ...
- MongoDB官方推荐的GUI工具-Compass的使用
探索和操作MongoDB数据的最简单方法 用于MongoDB的GUI.可视化地查看数据.以秒为单位运行临时查询.使用完整的CRUD功能与数据交互.查看和优化查询性能.可在Linux.Mac或Windo ...
- git 把其他分支上的文件拿来覆盖本地
1:git checkout oldversion -- 文件地址 2: 一个分支从某个角度讲也像是一次commmit,也是有向无环图的一个点
- jenkins中的流水线( pipeline)的理解(未完)
目录 一.理论概述 Jenkins流水线的发展历程 什么是Jenkins流水线 一.理论概述 pipeline是流水线的英文释义,文档中统一称为流水线 Jenkins流水线的发展历程 在Jenki ...
- mysql案例分析
工作中,需要设计一个数据库存储,项目的需求大致如下: (1)对于每个用户,需要存储一个或多个库, 每个库, 由一个用户标识来标识,这里成为clientFlag. (2) 对于每一个库,结构如下: 1) ...
- c# 属性说明
- 软硬RAID 和 不常见的RAID
若转载请于明显处标明出处:http://www.cnblogs.com/kelamoyujuzhen/p/5561809.html 为啥子引入RAID? 存储最现实的两个问题:速度.容量 001——计 ...
- VMware14虚拟机与宿主机建立通讯
当我们在VMware14中运行虚拟机搭建实验环境就需要与我们的宿主机或另一台虚拟机连接通讯,下面我们就来看看如何建立通讯,实现虚拟机与宿主机.虚拟机与虚拟机互联互通. 准备环境:一台安装好VMware ...