Yii2框架实现数据库常用操作总结


Posted in PHP onFebruary 08, 2017

通用:

use yii\db\Query;
$query = new Query();

查询:

Query:

$rows = (new \yii\db\Query())
      ->select(['code', 'name', 'population'])
      ->from('country')
      ->limit(10)
      ->all();

Select:

$data = $query->select(['code', 'name'])->from('country')->all();

// 调用 yii\db\Query::addSelect() 方法来选取附加字段
    $data = $query->select(['code', 'name'])
      ->addSelect(['population'])->all();

From:

$query->from('country'); 
$query->from(['public.country c']); 
$query->from('public.country c');

Where:

字符串格式,例如:'status=1'

哈希格式,例如: ['status' => 1, 'type' => 2]

操作符格式,例如:['like', 'name', 'test']

andFilterWhere()

orFilterWhere()

Active Record  (活动记录,以下简称AR)提供了一个面向对象的接口, 用以访问数据库中的数据。一个 AR 类关联一张数据表, 每个 AR 对象对应表中的一行,对象的属性(即 AR 的特性Attribute)映射到数据行的对应列。 一条活动记录(AR对象)对应数据表的一行,AR对象的属性则映射该行的相应列。

这里的增删改都会用到AR对象进行映射操作。

 增加

$country->name = 'UK';
$country->save();

修改

$country = Customer::findOne($id);
$country->email = 'UK';
$country->save(); // 等同于 $country->update();

删除

$country = Country::findOne($id);
$country->delete();

其他

User::find()->all();  //返回所有用户数据;
User::findOne($id);  //返回 主键 id=1 的一条数据; 
User::find()->where(['name' => 'ttt'])->one();  //返回 ['name' => 'ttt'] 的一条数据;
User::find()->where(['name' => 'ttt'])->all();  //返回 ['name' => 'ttt'] 的所有数据;
User::findBySql('SELECT * FROM user')->all(); //用 sql 语句查询 user 表里面的所有数据;
User::findBySql('SELECT * FROM user')->one(); //此方法是用 sql 语句查询 user 表里面的一条数据;
User::find()->andWhere(['sex' => '女', 'age' => '18'])->count('id');  //统计符合条件的总条数;
User::find()->one();  //返回一条数据;
User::find()->all();  //返回所有数据;
User::find()->count();  //返回记录的数量;
User::find()->average();  //返回指定列的平均值;
User::find()->min();  //返回指定列的最小值 ;
User::find()->max();  //返回指定列的最大值 ;
User::find()->scalar();  //返回值的第一行第一列的查询结果;
User::find()->column();  //返回查询结果中的第一列的值;
User::find()->exists();  //返回一个值指示是否包含查询结果的数据行;

以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持三水点靠木。

PHP 相关文章推荐
php环境配置 php5 mysql5 apache2 phpmyadmin安装与配置
Nov 17 PHP
PHP程序开发范例学习之表单 获取文本框的值
Aug 08 PHP
header中Content-Disposition的作用与使用方法
Jun 13 PHP
php session_start()出错原因分析及解决方法
Oct 28 PHP
thinkphp视图模型查询提示ERR: 1146:Table 'db.pr_order_view' doesn't exist的解决方法
Oct 30 PHP
PHP实现多文件上传的方法
Jul 08 PHP
PHP7.0安装笔记整理
Aug 28 PHP
PHP生成随机字符串(3种方法)
Sep 25 PHP
php中session定期自动清理的方法
Nov 12 PHP
Laravel中unique和exists验证规则的优化详解
Jan 28 PHP
laravel5.5安装jwt-auth 生成token令牌的示例
Oct 24 PHP
PHP设计模式概论【概念、分类、原则等】
May 01 PHP
Yii2实现中国省市区三级联动实例
Feb 08 #PHP
PHP+Ajax无刷新带进度条图片上传示例
Feb 08 #PHP
PHP中的使用curl发送请求(GET请求和POST请求)
Feb 08 #PHP
php制作基于xml的RSS订阅源功能示例
Feb 08 #PHP
PHP图片裁剪与缩放示例(无损裁剪图片)
Feb 08 #PHP
php实现XML和数组的相互转化功能示例
Feb 08 #PHP
PHP 获取指定地区的天气实例代码
Feb 08 #PHP
You might like
linux下为php添加curl扩展的方法
2011/07/29 PHP
PHP查询快递信息的方法
2015/03/07 PHP
Zend Framework入门应用实例详解
2016/12/11 PHP
Thinkphp5行为使用方法汇总
2017/12/21 PHP
php-7.3.6 编译安装过程
2020/02/11 PHP
比较简单实用的使用正则三种版本的js去空格处理方法
2007/11/18 Javascript
JavaScript的单例模式 (singleton in Javascript)
2010/06/11 Javascript
JavaScript继承方式实例
2010/10/29 Javascript
js计算两个时间之间天数差的实例代码
2013/11/19 Javascript
JS小功能(offsetLeft实现图片滚动效果)实例代码
2013/11/28 Javascript
修改或扩展jQuery原生方法的代码实例
2015/01/13 Javascript
javascript实现获取字符串hash值
2015/05/10 Javascript
jquery验证邮箱格式并显示提交按钮
2015/11/07 Javascript
javascript类型系统——undefined和null全面了解
2016/07/13 Javascript
AngularJS基础 ng-focus 指令简单示例
2016/08/01 Javascript
Angular 4依赖注入学习教程之ClassProvider的使用(三)
2017/06/04 Javascript
解决vue路由后界面没有变化,但是链接有的问题
2018/09/01 Javascript
详解create-react-app 2.0版本如何启用装饰器语法
2018/10/23 Javascript
微信小程序云开发之使用云数据库
2019/05/17 Javascript
JS实现从对象获取对象中单个键值的方法示例
2019/06/05 Javascript
vue安装遇到的5个报错及解决方法
2019/06/12 Javascript
vue穿梭框实现上下移动
2021/01/29 Vue.js
[53:44]DOTA2-DPC中国联赛 正赛 PSG.LGD vs Magma BO3 第一场 1月31日
2021/03/11 DOTA
重命名批处理python脚本
2013/04/05 Python
python批量提交沙箱问题实例
2014/10/08 Python
简介Django框架中可使用的各类缓存
2015/07/23 Python
Django自定义manage命令实例代码
2018/02/11 Python
python3.6使用pymysql连接Mysql数据库
2018/05/25 Python
对pandas数据判断是否为NaN值的方法详解
2018/11/06 Python
利用Python对文件夹下图片数据进行批量改名的代码实例
2019/02/21 Python
2016年教师党员公开承诺书
2016/03/24 职场文书
2016年社区党支部公开承诺书
2016/03/25 职场文书
如何书写民事调解协议书?
2019/06/25 职场文书
浅谈Python响应式类库RxPy
2021/06/14 Python
【海涛教你打dota】体验一超神发条:咱是抢盾专业户
2022/04/01 DOTA
Windows Server 2012 R2 磁盘分区教程
2022/04/29 Servers