//--------查询
// 原生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数据库操作的更多相关文章

  1. tp5数据库操作 模型层

    一.数据模型作用 相同功能代码不用重复写多次 二.创建方式 在模块下建立model文件夹,php文件,文件名为数据库表名,其中类为数据库表名,继承Model类,模型层即为此表 namespace ap ...

  2. tp5数据库操作 Db类

    一.链接数据库 1.配置文件定义  application\database.php 注意:数据表前缀更改,在文件的prefix选项 2.类定义 二.数据库的基本使用 namespace app\de ...

  3. ThinkPHP5.0框架开发--第7章 TP5.0数据库操作

    ThinkPHP5.0框架开发--第7章 TP5.0数据库操作 第7章 TP5.0数据库操作 ===================================================== ...

  4. TP5对数据库操作的事物作用

    假如: 你写好了一段完整的代码,模型对数据库的操作,增删改查什么的,都没有问题,当然运行速度也是最快的,完全不用担心会出错, 前提肯定是已经写好的一整段代码, 但是,万一服务器中断了呢,执行一半,后面 ...

  5. 04:sqlalchemy操作数据库

    目录: 1.1 ORM介绍(作用:不用原生SQL语句对数据库操作) 1.2 安装sqlalchemy并创建表 1.3 使用sqlalchemy对表基本操作 1.4 一对多外键关联 1.5 sqlalc ...

  6. 04:sqlalchemy操作数据库 不错

    目录: 1.1 ORM介绍(作用:不用原生SQL语句对数据库操作) 1.2 安装sqlalchemy并创建表 1.3 使用sqlalchemy对表基本操作 1.4 一对多外键关联 1.5 sqlalc ...

  7. SQL 2005 中查询或执行另外的数据库操作的方法

    原文:SQL 2005 中查询或执行另外的数据库操作的方法 摘要: 如果,你想在一台数据库服务器上,查询另一个台数据服务器的数据该如何做呢?如果,你想在同一台数据服务器上,在不同的数据库之间查询数据, ...

  8. 使用ado.net打造通用的数据库操作类

    最近在项目中使用中碰到了这样一种情况,查询的数据是从Oracle中获取的,但是记录下来的数据是存在Sql Server中(企业Oracle数据库管理太严,没办法操作).而且我在之前的工作中也碰到过使用 ...

  9. TP5数据库操作方法

    一.TP5数据库操作方法 1.name()方法作用 : 指定默认的数据表名(不含前缀)示例 : Db::name(‘weiba_post’);返回 : Db对象 2.setTable()方法作用 : ...

  10. 05:ModelForm 数据验证 & 生成html & 数据库操作

    目录:Django其他篇 01:Django基础篇 02:Django进阶篇 03:Django数据库操作--->Model 04: Form 验证用户数据 & 生成html 05:Mo ...

随机推荐

  1. python3之面向对象编程理解

    面向对象主要有三个特征:封装,继承,多态度. 一.封装 定义类语 class Animal(): class为定义类的关键字,后面跟名字(): python命名规范建议:类一般首字母单词大写,属性变量 ...

  2. 关于get 和post 方法的比较

    地址:https://my.oschina.net/leejun2005/blog/136820 点击这里

  3. 关于QPS、TPS、PV、UV、GMV、IP、RPS的名词解释!

    名词解释链接:https://blog.csdn.net/jackyrongvip/article/details/98839519

  4. C#-MailHelper

    using System; using System.Collections.Generic; using System.Linq; using System.Text; using System.T ...

  5. MySql 8.0服务端安装后,用navicat12连接时报2059错误_解决

    先看连接错误 连接失败:2059 - Authentication plugin 'caching_sha2_password' cannot be loaded: .... 解决方法: 进入MySQ ...

  6. SASS 和 LESS 的区别

    1.编译环境不同 SASS 的安装需要 Ruby 环境,是在服务端处理的: LESS 需要引入 less.js 来处理代码输出 CSS 到浏览器,也可以在开发环节使用 LESS,然后编译成 CSS 文 ...

  7. EXCEL导入数据到SQL SERVER 2008

    项目中需要导入excel到SQL SERVER数据库 总是报截断, 本质问题是,SQL SERVER导入程序是根据EXCEL的第一行记录 (非标题行)来决定数据长度的 碰到这个问题,可以伪造第一行,然 ...

  8. tslint.json的配置项说明

    tslint.json的配置项说明   extends: 内设配置项名称 rules: 规则 { //ts专用 adjacent-overload-signatures : true, // Enfo ...

  9. MySQL Navicat Premium 保存sql语句

    一.新建查询 二.编写sql语句并保存 1.保存到内部 1.Ctrl+s保存当前查询文件 2.下次打开可点击查询点击上次保存的查询文件名打开上次查询的文件 2.保存到外部 1.默认保存至 C:\Use ...

  10. 多任务udp聊天器完整版

    import socket import threading def send_msg(udp_socket,dest_ip,dest_port): while True: send_data = i ...